C++0x で提案されているユーザー定義のリテラルを使用すると以下のようなことができるようになる
"Hello"s // std::string 101011100011b // binary literals 123km // unit is kilometers
X operator""suffix(const char*); X x = 1234suffix; // operator"suffix"("1234");
この場合、operator""suffixの引数は NULL 終端の文字列となる
Variadic Templates を併用すると、リテラルを char 型の コンパイル時定数とすることができる
template <char...> X operator""suffix(); X x = 1234suffix; // operator""suffix<'1', '2', '3', '4'>();
constexpr を使用することで、リテラル計算の結果をコンパイル時定数とすることもできる
N2378 - User-defined Literals (aka. Extensible Literals (revision 3))