C++ Logo

std-proposals

Advanced search

Re: Extending std::bitset

From: ramy koudsi <rkoudsi1_at_[hidden]>
Date: Thu, 12 Mar 2020 19:25:13 -0000
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.   Thank you,   Ramy 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: Hi, 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 std::basic_string. /MF I see its use like: std::bitset<80> bigbs(“FFFF95D3FFFFAC27FFFF”); 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? Thank you Ramy -- Std-Proposals mailing list Std-Proposals_at_[hidden] https://lists.isocpp.org/mailman/listinfo.cgi/std-proposals

Received on 2020-03-12 14:28:03