Tongari J wrote:
Hi Louis,
2014-08-26 0:01 GMT+08:00 Louis Dionne :
This is genius, thanks a lot for posting. I've been searching for a
way to do this to implement compile-time strings in Boost.Hana[1].
Glad to hear :)
Actually I've found an even simpler way:
Nice! And with some small tweaks it works in C++11, assuming you have
some implementation of index_sequence:
```
template
struct str {};
template
auto make_str_impl(index_sequence, S) -> decltype(str())
{
return str();
}
template<class S>
auto make_str(S) -> decltype(make_str_impl(make_index_sequence(), S()))
{
return make_str_impl(make_index_sequence(), S());
}
#define LIT(s) make_str([]() \
{ \
struct \
{ \
static constexpr decltype(s) get() \
{ \
return s; \
} \
} _; \
return _; \
}())
```
Well VS2013 complains about a static data member in locally defined
class but I assume it's a VS bug.
Regards,
Adam