18 #ifndef MAUVE_RUNTIME_HAS_PROPERTY_HPP 19 #define MAUVE_RUNTIME_HAS_PROPERTY_HPP 21 #include "mauve/runtime/Configurable.hpp" 28 class AbstractProperty;
37 template<
bool I,
bool F,
bool S,
typename T>
40 template<
bool F,
bool S,
typename T>
43 template<
bool I,
bool S,
typename T>
46 template<
bool I,
bool F,
typename T>
62 const std::vector<AbstractProperty*> get_properties()
const;
64 std::size_t get_properties_size()
const {
return properties.size(); }
79 Property<T> & mk_property(std::string
const & name, T init_value);
82 std::vector<AbstractProperty *> properties;
93 virtual const char*
what()
const throw() {
94 std::string message =
"Already Defined Property " + name;
95 return message.c_str();
102 #include "mauve/runtime/ipp/HasProperty.ipp" Definition: HasProperty.hpp:34
virtual const char * what() const
Exception explanation.
Definition: HasProperty.hpp:93
Exception for Already Defined Properties.
Definition: HasProperty.hpp:88
Definition: HasProperty.hpp:32
Definition: HasProperty.hpp:53
Definition: HasProperty.hpp:33
The MAUVE namespace.
Definition: tracing.hpp:24
Configurable trait.
Definition: Configurable.hpp:25
const std::string name
Exception name.
Definition: HasProperty.hpp:91
Abstract property class.
Definition: Property.hpp:32
Definition: Property.hpp:147
Definition: HasProperty.hpp:38