bitsetの罠
※TopCoderの環境の場合。C++0xだとlonglongのコンストラクタがあるらしい
bitsetで気軽に2進表示とかよくやる。
でもbitsetはintしか対応してない?らしく、long longを使うと何の警告も無しに切り詰められちゃう。
さらに悪いことに、gccのバージョンによって色々違ったりするようだ?
MSVC2010ではコンストラクタが無いです、というエラーが出た
#include <bitset> #include <iostream> int main() { cout << bitset<64>(0xffffffffffffffffLL) << endl; //> 0000000000000000000000000000000011111111111111111111111111111111 return 0; }