Namespace containing C++14 user-defined literals provided by Hana. More...
Functions | |
template<char... c> | |
constexpr auto | operator""_c () |
Creates a hana::integral_constant from a literal. More... | |
template<typename CharT , CharT... s> | |
constexpr auto | operator""_s () |
Creates a compile-time string from a string literal. More... | |
Namespace containing C++14 user-defined literals provided by Hana.
constexpr auto boost::hana::literals::operator""_c | ( | ) |
Creates a hana::integral_constant
from a literal.
The literal is parsed at compile-time and the result is returned as a llong<...>
.
llong<...>
instead of ullong<...>
because using an unsigned type leads to unexpected behavior when doing stuff like -1_c
. If we used an unsigned type, -1_c
would be something like ullong<-1>
which is actually ullong<something huge>
.References boost::hana::apply, and boost::hana::value.
constexpr auto boost::hana::literals::operator""_s | ( | ) |
Creates a compile-time string from a string literal.
The string literal is parsed at compile-time and the result is returned as a hana::string
. This feature is an extension that is disabled by default; see below for details.
BOOST_HANA_CONFIG_ENABLE_STRING_UDL
config macro is required to get this operator. Hence, if you want to stay safe, just use the BOOST_HANA_STRING
macro instead. If you want to be fast and furious (I do), define BOOST_HANA_CONFIG_ENABLE_STRING_UDL
.References boost::hana::apply, boost::hana::find, boost::hana::if_, boost::hana::lexicographical_compare, and boost::hana::value.