Я пытался скомпилировать его с VS2010
long long min = std::numeric_limits<int>::min();
unsigned long long max = std::numeric_limits<int>::max();
std::bitset<64> minimal(min);//here I'm getting the error
cout << "minimal: " << minimal;
error:
error C2668: 'std::bitset<_Bits>::bitset' : ambiguous call to overloaded function
1> with
1> [
1> _Bits=64
1> ]
1> c:\program files\microsoft visual studio 10.0\vc\include\bitset(136): could be 'std::bitset<_Bits>::bitset(_ULonglong)'
1> with
1> [
1> _Bits=64
1> ]
1> c:\program files\microsoft visual studio 10.0\vc\include\bitset(127): or 'std::bitset<_Bits>::bitset(int)'
1> with
1> [
1> _Bits=64
1> ]
1> while trying to match the argument list '(__int64)'
Почему?Очевидно, что этот аргумент имеет тип long long, и для этого типа должен использоваться конструктор.Я не понимаю, что происходит.