#include namespace sqlpp { template struct char_sequence { }; } template struct make_string_aux; template struct make_string_aux> { using type = sqlpp::char_sequence; }; template using make_string = typename make_string_aux>::type; #define MAKE_CHAR_SEQUENCE(name) \ []() \ { \ struct _intern \ { \ static constexpr const char* value() \ { \ return #name; \ } \ }; \ \ return make_string<_intern, sizeof(#name)>{}; \ }() int main() { auto x = MAKE_CHAR_SEQUENCE(delta); static_assert( std::is_same< decltype(x), sqlpp::char_sequence<'d', 'e', 'l', 't', 'a', '\000'>>::value, ""); }