30 #ifndef GUM_VARIABLE_H 31 #define GUM_VARIABLE_H 36 #include <agrum/agrum.h> 40 enum class VarType :
char 52 std::ostream& operator<<(std::ostream& s,
const Variable& LDRV);
85 virtual Variable* clone()
const = 0;
98 Variable& operator=(
const Variable& aRV);
102 virtual bool operator==(
const Variable& aRV)
const;
106 virtual bool operator!=(
const Variable& aRV)
const;
118 void setName(
const std::string& theValue);
122 const std::string& name()
const;
128 void setDescription(
const std::string& theValue)
const;
132 const std::string& description()
const;
136 virtual VarType varType()
const = 0;
139 virtual const std::string domain()
const = 0;
146 GUM_CONSTRUCTOR(Variable);
153 void copy_(
const Variable& aRV);
159 Variable(
const std::string& aName,
const std::string& aDesc);
164 Variable(
const Variable& aRV);
173 mutable std::string _description_;
178 #ifndef GUM_NO_INLINE 179 # include <agrum/tools/variables/variable_inl.h>