+// Copyright (C) 2014-20xx CEA/DEN, EDF R&D
// Name : ModelHighAPI_RefAttr.h
-// Purpose:
+// Purpose:
//
// History:
// 08/06/16 - Sergey POKHODENKO - Creation of the file
#include <memory>
#include <string>
-
-#include <boost/variant.hpp>
//--------------------------------------------------------------------------------------
class ModelAPI_Attribute;
class ModelAPI_AttributeRefAttr;
virtual ~ModelHighAPI_RefAttr();
/// Fill attribute values
- MODELHIGHAPI_EXPORT
- virtual void fillAttribute(const std::shared_ptr<ModelAPI_AttributeRefAttr> & theAttribute) const;
+ MODELHIGHAPI_EXPORT virtual
+ void fillAttribute(const std::shared_ptr<ModelAPI_AttributeRefAttr> & theAttribute) const;
/// Append to list attribute
+ MODELHIGHAPI_EXPORT virtual
+ void appendToList(const std::shared_ptr<ModelAPI_AttributeRefAttrList> & theAttribute) const;
+
+ /// Check the object is empty
MODELHIGHAPI_EXPORT
- virtual void appendToList(const std::shared_ptr<ModelAPI_AttributeRefAttrList> & theAttribute) const;
+ bool isEmpty() const;
private:
- boost::variant<
- std::shared_ptr<ModelAPI_Attribute>,
- std::shared_ptr<ModelAPI_Object>
- > myValue;
+ enum VariantType { VT_ATTRIBUTE, VT_OBJECT } myVariantType;
+ std::shared_ptr<ModelAPI_Attribute> myAttribute;
+ std::shared_ptr<ModelAPI_Object> myObject;
};
//--------------------------------------------------------------------------------------