Fix latebound entity inheritance hierarchy wrt id() #5822 - not ideal, because BaseEntity.declation now returns declaration

This commit is contained in:
Thomas Krijnen
2024-11-28 12:57:08 +01:00
parent c9847caa6a
commit 8edbb37121
4 changed files with 19 additions and 19 deletions
+14 -14
View File
@@ -124,19 +124,6 @@ public:
void toString(std::ostream&, bool upper = false) const;
};
class IFC_PARSE_API IfcLateBoundEntity : public IfcBaseClass {
private:
const IfcParse::declaration* decl_;
public:
IfcLateBoundEntity(const IfcParse::declaration* decl, IfcEntityInstanceData&& data) : IfcBaseClass(std::move(data)),
decl_(decl) {}
virtual const IfcParse::declaration& declaration() const {
return *decl_;
}
};
class IFC_PARSE_API IfcBaseEntity : public IfcBaseClass {
public:
IfcBaseEntity(IfcEntityInstanceData&& data);
@@ -145,7 +132,7 @@ class IFC_PARSE_API IfcBaseEntity : public IfcBaseClass {
: IfcBaseClass(IfcEntityInstanceData(storage_t(n)))
{}
virtual const IfcParse::entity& declaration() const = 0;
virtual const IfcParse::declaration& declaration() const = 0;
AttributeValue get(const std::string& name) const;
@@ -162,6 +149,19 @@ class IFC_PARSE_API IfcBaseEntity : public IfcBaseClass {
void populate_derived();
};
class IFC_PARSE_API IfcLateBoundEntity : public IfcBaseEntity {
private:
const IfcParse::declaration* decl_;
public:
IfcLateBoundEntity(const IfcParse::declaration* decl, IfcEntityInstanceData&& data) : IfcBaseEntity(std::move(data)),
decl_(decl) {}
virtual const IfcParse::declaration& declaration() const {
return *decl_;
}
};
// TODO: Investigate whether these should be template classes instead
class IFC_PARSE_API IfcBaseType : public IfcBaseClass {
public: