型を書換えたかのように
あたかも型を上書きしているかのように振る舞います。
実用性はないです。
#include <boost/mpl/string.hpp> #include <boost/mpl/char.hpp> #include <iostream> namespace cpp { namespace { namespace { namespace { using value = boost::mpl::string<'C'>; } namespace { using value = cpp::value; } } namespace { using value = typename boost::mpl::push_back<cpp::value, boost::mpl::char_<'+'>>::type; } namespace { using value = cpp::value; } } namespace { using value = typename boost::mpl::push_back<cpp::value, boost::mpl::char_<'+'>>::type; } namespace { using value = cpp::value; } } int main() { std::cout << boost::mpl::c_str<cpp::value>::value << std::endl; return 0; }
output
C++