diff --git a/src/examples/IfcParseExamples.cpp b/src/examples/IfcParseExamples.cpp index d43fe776f1..563545bc1c 100644 --- a/src/examples/IfcParseExamples.cpp +++ b/src/examples/IfcParseExamples.cpp @@ -121,7 +121,7 @@ void process_pset(element_properties& props, const T* inst) { auto ps = pset->HasProperties(); for (auto it = ps->begin(); it != ps->end(); ++it) { auto& p = *it; - if (auto singleval = p->as()) { + if (auto singleval = p->template as()) { std::string propname, propvalue; if constexpr (is_ifc4_or_higher::value) { if (!singleval->Name()) { @@ -135,26 +135,26 @@ void process_pset(element_properties& props, const T* inst) { if (!singleval->NominalValue()) { propvalue = "-"; } else { - props[*pset->Name()][propname] = format_string(singleval->NominalValue()->as()->data().getArgument(0)); + props[*pset->Name()][propname] = format_string(singleval->NominalValue()->template as()->data().getArgument(0)); } } } } - if (auto qset = inst->as()) { + if (auto qset = inst->template as()) { if (!qset->Name()) { return; } auto qs = qset->Quantities(); for (auto it = qs->begin(); it != qs->end(); ++it) { auto& q = *it; - if (q->as() && q->data().getArgument(3)->type() == IfcUtil::Argument_DOUBLE) { + if (q->template as() && q->data().getArgument(3)->type() == IfcUtil::Argument_DOUBLE) { double v = *q->data().getArgument(3); props[*qset->Name()][q->Name()] = std::to_string(v); } } } if constexpr (is_ifc4_or_higher::value) { - if (auto extprops = inst->as()) { + if (auto extprops = inst->template as()) { // @todo } } @@ -163,7 +163,7 @@ void process_pset(element_properties& props, const T* inst) { template void get_psets_s(element_properties& props, const typename Schema::IfcObjectDefinition* inst) { // Extracts the property definitions for an IFC instance. - if (auto tyob = inst->as()) { + if (auto tyob = inst->template as()) { if (tyob->HasPropertySets()) { auto defs = *tyob->HasPropertySets(); for (auto it = defs->begin(); it != defs->end(); ++it) { @@ -173,14 +173,14 @@ void get_psets_s(element_properties& props, const typename Schema::IfcObjectDefi } } if constexpr (is_ifc4_or_higher::value) { - if (auto mdef = inst->as()) { + if (auto mdef = inst->template as()) { auto defs = mdef->HasProperties(); for (auto it = defs->begin(); it != defs->end(); ++it) { auto& def = *it; process_pset(props, def); } } - if (auto pdef = inst->as()) { + if (auto pdef = inst->template as()) { auto defs = pdef->HasProperties(); for (auto it = defs->begin(); it != defs->end(); ++it) { auto& def = *it; @@ -188,7 +188,7 @@ void get_psets_s(element_properties& props, const typename Schema::IfcObjectDefi } } } - if (auto ob = inst->as()) { + if (auto ob = inst->template as()) { if constexpr (is_ifc4_or_higher::value) { auto rels = ob->IsTypedBy(); for (auto it = rels->begin(); it != rels->end(); ++it) { @@ -200,9 +200,9 @@ void get_psets_s(element_properties& props, const typename Schema::IfcObjectDefi auto rels = ob->IsDefinedBy(); for (auto it = rels->begin(); it != rels->end(); ++it) { auto& rel = *it; - if (auto bytype = rel->as()) { + if (auto bytype = rel->template as()) { get_psets_s(props, bytype->RelatingType()); - } else if (auto byprops = rel->as()) { + } else if (auto byprops = rel->template as()) { process_pset(props, byprops->RelatingPropertyDefinition()); } }