MicroModelicaCCompiler  4.5.3
util_types.hpp
Go to the documentation of this file.
1 /*****************************************************************************
2 
3  This file is part of QSS Solver.
4 
5  QSS Solver is free software: you can redistribute it and/or modify
6  it under the terms of the GNU General Public License as published by
7  the Free Software Foundation, either version 3 of the License, or
8  (at your option) any later version.
9 
10  QSS Solver is distributed in the hope that it will be useful,
11  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  GNU General Public License for more details.
14 
15  You should have received a copy of the GNU General Public License
16  along with QSS Solver. If not, see <http://www.gnu.org/licenses/>.
17 
18  ******************************************************************************/
19 
20 #ifndef UTIL_TYPES_H_
21 #define UTIL_TYPES_H_
22 
23 #include <string>
24 #include <boost/optional.hpp>
25 #include <boost/foreach.hpp>
26 
27 #include "macros.hpp"
28 
29 #define foreach_ BOOST_FOREACH
30 
31 template <typename T>
32 struct Option : public boost::optional<T> {
33  public:
34  Option() : boost::optional<T>(){};
35  Option(boost::optional<T> t) : boost::optional<T>(t){};
36  Option(T const &t) : boost::optional<T>(t){};
37 };
38 
39 DEFINE_TYPE(AST_MicroModelica);
43 typedef std::string VarName;
47 typedef std::string TypeName;
48 
49 #endif /* UTIL_TYPES_H_ */
macros.hpp
TypeName
std::string TypeName
Definition: util_types.hpp:47
DEFINE_TYPE
DEFINE_TYPE(AST_MicroModelica)
Option
Definition: util_types.hpp:32
Option::Option
Option(T const &t)
Definition: util_types.hpp:36
Option::Option
Option()
Definition: util_types.hpp:34
VarName
std::string VarName
Definition: util_types.hpp:43
T
#define T(s)
Definition: type_check.cpp:30
Option::Option
Option(boost::optional< T > t)
Definition: util_types.hpp:35