MyLang
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros
myparser_str.hpp
Go to the documentation of this file.
1 #ifndef MYPARSER_STR_HPP
2 #define MYPARSER_STR_HPP
3 
4 #include "myparser_common.hpp"
5 
6 #define MP_STR_0(str) /* none */
7 #define MP_STR_1(str) str[0]
8 #include "myparser_str_chain.inc"
9 #define MP_STR(str, len) myparser::StaticStr<MP_STR_##len(str)>
10 
11 namespace myparser {
12 
13 template <char... C>
14 class StaticStr {
15 private:
16  inline StaticStr() = delete; // force static
17 
18  // virtual ~StaticStr() = delete;
19 
20 public:
21  static inline const std::string &getStr() {
22  static const std::string stdstr = {C...};
23 
24  return stdstr;
25  }
26 };
27 
28 }
29 
30 #endif
Definition: myparser_str.hpp:14
static const std::string & getStr()
Definition: myparser_str.hpp:21