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;
}