Subject: Re: [std-proposals] Extending std::bitset
From: ramy koudsi (rkoudsi1_at_[hidden])
Date: 2020-03-12 14:25:13
Apologies, I must have been referring to an old spec by accident.
C++11 and newer does indeed accept a string in one of the constructors.
However, the accepted string must be zeroes and ones. This doesn't seem very feasible, especially as we get larger bitsets.
Using current C++11 or newer, to initialize a bitset with a value of 80 bits, we would have to pass an 80 character string.
For this reason I see a need for the bitset string constructor to accept another argument, indicating the base of the string.
This way, initializing a value can be done with a much smaller string.
A base can also be passed to the to_string member function, telling it to output a string in that base, instead of just zeroes and ones.
On March 12, 2020 at 6:07 AM, Magnus Fromreide <magfr_at_[hidden]> wrote:
On Thu, Mar 12, 2020 at 01:49:42AM -0400, ramy koudsi via Std-Proposals wrote:
std::bitset does not have a size limit, however it has an initialization size limit. Bitsets cannot currently be initialized with anything bigger than a long long int.
To remove this limitation I propose adding another constructor that accepts a std::string object.
std::bitset already (since c++11) have a constructor accepting a
I see its use like:
The example above uses hex strings, but can easily be changed to accept strings of any base by adding another constructor accepting a string and an argument showing the base.
std::bitset<12> littlebs(âAFDâ, 16);
In addition, a member function to_string(int base) would be nice.
std::string littlestr = littlebs.to_string(16);
// littlestr is âAFDâ
I wanted to hear your thoughts about this. Has anyone thought of this and come up with a better solution?
Std-Proposals mailing list
STD-PROPOSALS list run by herb.sutter at gmail.com
Standard Proposals Archives on Google Groups