/////////////////////////////////////////////////////////////// // Copyright 2012 John Maddock. Distributed under the Boost // Software License, Version 1.0. (See accompanying file // LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt #ifndef BOOST_MP_TABLE_TYPE #define BOOST_MP_TABLE_TYPE #include #include struct string_table_entry { private: const char* m_data; public: string_table_entry(const char* p) : m_data(p) {} template operator T() const { return static_cast(m_data); } }; inline std::ostream& operator<<(std::ostream& os, string_table_entry const& what) { return os << static_cast(what); } template struct table_type > { typedef string_table_entry type; }; #define SC_(x) string_table_entry(BOOST_STRINGIZE(x)) #endif