31 #ifndef GranOO_Math_ExpressionArray_hpp
32 #define GranOO_Math_ExpressionArray_hpp
36 #include <boost/assign.hpp>
54 ExpressionArray(
const std::string& l1,
const std::string& l2,
const std::string& l3);
55 ExpressionArray(
const std::string& l1,
const std::string& l2,
const std::string& l3,
const std::string& l4);
56 ExpressionArray(
const std::string& l1,
const std::string& l2,
const std::string& l3,
const std::string& l4,
const std::string& l5);
57 ExpressionArray(
const std::string& l1,
const std::string& l2,
const std::string& l3,
const std::string& l4,
const std::string& l5,
const std::string& l6);
61 double value(
const std::string& l);
62 double value(
const std::string& l)
const;
76 std::map<const std::string, int>
_map;
83 std::string labels =
"";
85 for (
unsigned int i = 0; i < N; ++i) {
86 const std::string& attr = _label[i];
94 const std::string str = parser.
read_attribute<std::string>(attr,
"");
95 AssertMsg(str !=
"",
"Internal error, the string can not be empty");
114 const unsigned int i = _map.at(l);
115 return (_expression[i] !=
nullptr);
122 const unsigned int i = _map.at(l);
125 return (*_expression[i])();
132 const unsigned int i = _map.at(l);
135 return (*_expression[i])();
142 const unsigned int i = _map.at(l);
145 return *_expression[i];
152 const unsigned int i = _map.at(l);
155 return *_expression[i];
#define AssertMsg(condition, message)
Definition: Macro.hpp:67
Definition: XmlParser.hpp:84
static T * get_item(const std::string &)
Definition: XmlObjectManager.hpp:124
Definition: XmlParser.hpp:122
bool attribute_exist(const std::string &)
void read_attribute(const Attribute::State, const std::string &, T &)
Definition: ExpressionArray.hpp:51
ExpressionArray(const std::string &l1, const std::string &l2, const std::string &l3, const std::string &l4, const std::string &l5, const std::string &l6)
ExpressionArray(const std::string &l1, const std::string &l2, const std::string &l3, const std::string &l4)
ExpressionArray(const ExpressionArray &)=delete
ExpressionArray & operator=(const ExpressionArray &)=delete
const Expression & get_expression(const std::string &l) const
Definition: ExpressionArray.hpp:150
std::array< std::string, N > _label
Definition: ExpressionArray.hpp:74
std::array< Expression *, N > _expression
Definition: ExpressionArray.hpp:75
double value(const std::string &l) const
Definition: ExpressionArray.hpp:130
Expression & get_expression(const std::string &l)
Definition: ExpressionArray.hpp:140
ExpressionArray(const std::string &l1, const std::string &l2, const std::string &l3)
double value(const std::string &l)
Definition: ExpressionArray.hpp:120
bool expression_exist(const std::string &l) const
Definition: ExpressionArray.hpp:112
ExpressionArray(const std::string &l1, const std::string &l2, const std::string &l3, const std::string &l4, const std::string &l5)
std::map< const std::string, int > _map
Definition: ExpressionArray.hpp:76
void parse_xml()
Definition: ExpressionArray.hpp:81
Definition: Expression.hpp:46
static bool Check(const std::string &str)
Definition: Expression.cpp:62
Definition: Common.hpp:198
static std::string quote(const std::string &str)
Definition: String.cpp:73