User-defined literals で16進数を表示

文字列で受け取る場合は、prefix も一緒に渡されるんですねー。

[ソース]

#include <iostream>

char const*
operator "" _c_str(char const* str){
    return str;
}

int
main(){
    std::cout << 0xff << std::endl;
    std::cout << 0xff_c_str << std::endl;

    std::cout << 0777 << std::endl;
    std::cout << 0777_c_str << std::endl;

    return 0;
}

[出力]

255
0xff
511
0777

うーん、何か嬉しいことがあるかな?

[コンパイラ]

  • g++ (GCC) 4.7.0 20111210 (experimental)