本文整理汇总了C++中StructType::GetFieldList方法的典型用法代码示例。如果您正苦于以下问题:C++ StructType::GetFieldList方法的具体用法?C++ StructType::GetFieldList怎么用?C++ StructType::GetFieldList使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类StructType
的用法示例。
在下文中一共展示了StructType::GetFieldList方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Visit
void TypeDeduction::Visit(MemberExpression* node)
{
//TODO: Finish it.
node->GetContainer()->Accept(this);
StructType *structType = dynamic_cast<StructType *>(node->GetContainer()->GetTag<Type>("Type"));
if (structType == NULL)
{
CompilationContext::GetInstance()->ReportError(node->SourceLocation, false, "Member expression requires struct type.");
}
std::vector<Declaration *> * fileds = structType->GetFieldList();
for (std::vector<Declaration *>::iterator it = fileds->begin(); it != fileds->end(); ++it)
{
Declaration *decl = *it;
if (decl->GetName() == node->GetFieldName())
{
Type *fieldType = decl->GetType();
node->SetTag<Type>("Type", fieldType);
return;
}
}
CompilationContext::GetInstance()->ReportError(node->SourceLocation, false, "%s is not a member of type %s", node->GetFieldName().c_str(), structType->ToString().c_str());
abort();
}