diff --git a/src/ifcconvert/XmlSerializer.cpp b/src/ifcconvert/XmlSerializer.cpp index 702e5431f1..6106078999 100644 --- a/src/ifcconvert/XmlSerializer.cpp +++ b/src/ifcconvert/XmlSerializer.cpp @@ -119,7 +119,7 @@ typename V::list::ptr get_related(T* t, F f, G g) { typename V::list::ptr acc(new typename V::list); for (typename U::list::it it = li->begin(); it != li->end(); ++it) { U* u = *it; - acc->push((*u.*g)()->as()); + acc->push((*u.*g)()->template as()); } return acc; } diff --git a/src/ifcparse/IfcUtil.h b/src/ifcparse/IfcUtil.h index 565f19f439..d135119168 100644 --- a/src/ifcparse/IfcUtil.h +++ b/src/ifcparse/IfcUtil.h @@ -82,7 +82,7 @@ namespace IfcUtil { virtual const char* getArgumentName(unsigned int i) const = 0; template - typename T* as() { + T* as() { return is(T::Class()) ? static_cast(this) : static_cast(0);