Bitset constructor constexpr bitset( unsigned long long val )
is limited in the sense that it cannot pre-set bits from position 64 upwards (as unsigned long long is a 64 bit value). Any bit higher than 64 will be initialized with 0
, as the following example shows (cf. bitset constructors):
std::bitset<70> bl(ULLONG_MAX); // [0,0,0,0,0,0,1,1,1,...,1,1,1] in C++11
If you want to initialize also the higher bits in the constructor, I think you won't get around to use an initializer of type string
or char*
, i.e. bitset constructors of type (3) or (4).
Of course, for a bitset of length 256, the initializer string gets long:
std::bitset<256> myBitset("111100000011111000001110000010101000100000100010010000100000000001111");
// I did not count the digits...
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…