型を書換えたかのように

あたかも型を上書きしているかのように振る舞います。
実用性はないです。

#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++