220 31506 <3c737844-0d92-3713-7b7d-06130959a877@wanadoo.fr> article
Path: news.gmane.org!.POSTED!not-for-mail
From: "Vicente J. Botet Escriba" <vicente.botet@wanadoo.fr>
Newsgroups: gmane.comp.lang.c++.isocpp.proposals
Subject: Re: Re: compressed std::bitset<N>
Date: Wed, 8 Mar 2017 13:44:52 +0100
Lines: 409
Approved: news@gmane.org
Message-ID: <3c737844-0d92-3713-7b7d-06130959a877@wanadoo.fr>
References: <32cfea0a-7df8-47cf-47fd-549985f12295@wanadoo.fr>
 <06e829ca-417b-470c-95ca-c661e8752f79@isocpp.org>
 <4238c4e6-51f5-4a2f-94c8-f61ca415e7e0@isocpp.org>
Reply-To: std-proposals@isocpp.org
NNTP-Posting-Host: blaine.gmane.org
Mime-Version: 1.0
Content-Type: multipart/alternative;
 boundary="------------3A7744E93E813B6D652594CA"
X-Trace: blaine.gmane.org 1488977098 21028 195.159.176.226 (8 Mar 2017 12:44:58 GMT)
X-Complaints-To: usenet@blaine.gmane.org
NNTP-Posting-Date: Wed, 8 Mar 2017 12:44:58 +0000 (UTC)
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:45.0)
 Gecko/20100101 Thunderbird/45.7.1
To: std-proposals@isocpp.org
Original-X-From: std-proposals+bncBDH67CONY4PBBRXZ77CQKGQEOOBODMQ@isocpp.org Wed Mar 08 13:44:54 2017
Return-path: <std-proposals+bncBDH67CONY4PBBRXZ77CQKGQEOOBODMQ@isocpp.org>
Envelope-to: gclcip-std-proposals@m.gmane.org
Original-Received: from mail-lf0-f69.google.com ([209.85.215.69])
	by blaine.gmane.org with esmtp (Exim 4.84_2)
	(envelope-from <std-proposals+bncBDH67CONY4PBBRXZ77CQKGQEOOBODMQ@isocpp.org>)
	id 1claxV-0004VV-42
	for gclcip-std-proposals@m.gmane.org; Wed, 08 Mar 2017 13:44:49 +0100
Original-Received: by mail-lf0-f69.google.com with SMTP id a6sf19118009lfa.1
        for <gclcip-std-proposals@m.gmane.org>; Wed, 08 Mar 2017 04:44:55 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=isocpp-org.20150623.gappssmtp.com; s=20150623;
        h=subject:to:references:from:message-id:date:user-agent:mime-version
         :in-reply-to:x-original-sender:x-original-authentication-results
         :reply-to:precedence:mailing-list:list-id:x-spam-checked-in-group
         :list-post:list-help:list-archive:list-subscribe:list-unsubscribe;
        bh=ZPSrVj691FSsVrqkcVPthOjDA+vbAdwI6+njU+oypec=;
        b=NkumhBjmuSYIcGXueaTHaQy8oY1C2ADQBdFznRSUkfYBUXH6D6Zd472ZohwZQzv0Q9
         eazxMfsmg1nWWNW9BSTbVY+OdmppTSDhLFTnrZNzZHCcq2cDFy6CawYqUF8YnIBsHW2s
         eQr25GhN10N7Ad31xD7eNp/J0aRZbZ3hahM8UpMuvB06A1MrYLVT9VyvNLNXPMPKhwjD
         jkfhE3F2gmpzMXrkMhsQA2gsV0+FTG8BUlIKPBAmi0mtYa0ZACtUA1HVkuyvf6FnmePh
         SNCLC1tDDqBcMoyjX0GH5L3GiSARhpmdoiQfzS18+lcme2m0tDmGHu1eSQlCgbm5HMhI
         s8lA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:subject:to:references:from:message-id:date
         :user-agent:mime-version:in-reply-to:x-original-sender
         :x-original-authentication-results:reply-to:precedence:mailing-list
         :list-id:x-spam-checked-in-group:list-post:list-help:list-archive
         :list-subscribe:list-unsubscribe;
        bh=ZPSrVj691FSsVrqkcVPthOjDA+vbAdwI6+njU+oypec=;
        b=uHYCbKXormz+eRBiA3nDPBgukr/f5ROv5F2sVbzjPo1hCdGMQhBqfdXzVE5da2egVA
         Ldp4mS9eQuMpZtb7JbLOmuVDXbwel//u7oDjP25o6TkmuStz5g1D8D+nE0U8u+/QJhLJ
         rw8MVU2YRMu36p3UyTvUHr6Wv/Wb/ZEItqoSowzqMa6h7a5mMAqsitYMUQK0axtiPIEC
         bUQBPWKoCriWGeFaLZMQNj7liTD6/iWKnmeXWP2ioWu1AxRA+uL6qr/j0g6nUIS3ms2J
         gtAYdJTR7ECFOQ/qYWQRBQaBOZAJezy6euowBri0DUHlgBdnAEXr2tSaLyTFMZlGJ0fc
         CNSw==
X-Gm-Message-State: AMke39m9lnsATNPuq3ER1h8HYfO99C+nnK6LIWHDA+fbTNO25jvHoawQLJM64h5FHKX1tg==
X-Received: by 10.46.33.82 with SMTP id h79mr1061008ljh.7.1488977095365;
        Wed, 08 Mar 2017 04:44:55 -0800 (PST)
X-BeenThere: std-proposals@isocpp.org
Original-Received: by 10.28.209.137 with SMTP id i131ls484876wmg.5.gmail; Wed, 08 Mar
 2017 04:44:53 -0800 (PST)
X-Received: by 10.223.148.35 with SMTP id 32mr5232795wrq.82.1488977093943;
        Wed, 08 Mar 2017 04:44:53 -0800 (PST)
Original-Received: from smtp.smtpout.orange.fr (smtp08.smtpout.orange.fr. [80.12.242.130])
        by mx.google.com with ESMTPS id g78si12329375wme.3.2017.03.08.04.44.53
        for <std-proposals@isocpp.org>
        (version=TLS1 cipher=AES128-SHA bits=128/128);
        Wed, 08 Mar 2017 04:44:53 -0800 (PST)
Received-SPF: neutral (google.com: 80.12.242.130 is neither permitted nor denied by best guess record for domain of vicente.botet@wanadoo.fr) client-ip=80.12.242.130;
Original-Received: from imac-de-vicente-botet-escriba.home ([92.139.161.125])
	by mwinf5d31 with ME
	id tQks1u00t2ie32s03QktQ2; Wed, 08 Mar 2017 13:44:53 +0100
X-ME-Helo: imac-de-vicente-botet-escriba.home
X-ME-Auth: dmljZW50ZS5ib3RldEB3YW5hZG9vLmZy
X-ME-Date: Wed, 08 Mar 2017 13:44:53 +0100
X-ME-IP: 92.139.161.125
In-Reply-To: <4238c4e6-51f5-4a2f-94c8-f61ca415e7e0@isocpp.org>
X-Original-Sender: vicente.botet@wanadoo.fr
X-Original-Authentication-Results: mx.google.com;       spf=neutral
 (google.com: 80.12.242.130 is neither permitted nor denied by best guess
 record for domain of vicente.botet@wanadoo.fr) smtp.mailfrom=vicente.botet@wanadoo.fr
Precedence: list
Mailing-list: list std-proposals@isocpp.org; contact std-proposals+owners@isocpp.org
List-ID: <std-proposals.isocpp.org>
X-Google-Group-Id: 399137483710
List-Post: <https://groups.google.com/a/isocpp.org/group/std-proposals/post>, <mailto:std-proposals@isocpp.org>
List-Help: <https://support.google.com/a/isocpp.org/bin/topic.py?topic=25838>, <mailto:std-proposals+help@isocpp.org>
List-Archive: <https://groups.google.com/a/isocpp.org/group/std-proposals/>
List-Subscribe: <https://groups.google.com/a/isocpp.org/group/std-proposals/subscribe>,
 <mailto:std-proposals+subscribe@isocpp.org>
List-Unsubscribe: <mailto:googlegroups-manage+399137483710+unsubscribe@googlegroups.com>,
 <https://groups.google.com/a/isocpp.org/group/std-proposals/subscribe>
Xref: news.gmane.org gmane.comp.lang.c++.isocpp.proposals:31506
Archived-At: <http://permalink.gmane.org/gmane.comp.lang.c++.isocpp.proposals/31506>

This is a multi-part message in MIME format.
--------------3A7744E93E813B6D652594CA
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: quoted-printable

Le 08/03/2017 =C3=A0 06:23, 3dw4rd@verizon.net a =C3=A9crit :
>
>
> On Tuesday, February 21, 2017 at 3:40:00 PM UTC-5, ricky6565 wrote:
>
>     Hi Vicente,
>
>     I think the Bitset2
>     <https://github.com/ClaasBontus/bitset2>library by Claas Bontus
>     provides what you are looking for. It's like std::bitset but with
>     enhanced functionality. It let's you set the underlying integral
>     type of the bitset. In fact, it defaults to uint8_t, uint16_t, or
>     uint32_t if N bits fit into those integers. I would like this
>     functionality added to std::bitset but, as you said, it would
>     probably be a breaking change.
>
>     Riccardo
>
>
> I was just thinking something similar.  Allow the user to specify the=20
> bitset leaf-type:
>
> |
> template<typenameLeafTp=3Dunsignedlonglong,std::size_t=20
> Bits=3Dstd::numeric_limits<LeafTp>::digits>
> classbit_array
> {
> // pretty much like bitset except I would add
> usingleaf_type =3DLeafTp;
>     leaf_iterator lbegin()//
>     leaf_iterator lend();//
> };
>
> |
>
> This is flipped relative to Bitset2 in that leaf type comes first and=20
> the template would decide how many leaves based on bits.
>
> So now you could get these small bitsets:
> using bitset16 =3D bit_array<uint16_t>;
> etc.
>
I believe that both orders could have have usage (see below), an alias=20
templates should help here to have both.
However I don't like the possibility to have bit_array<>. How many bits=20
do we have?

If the data function returns a span<T,N> we don't need the leaf iterator=20
functions.


> I've heard people want similar choices for a dynamic_bitset:
> |
> template<typenameLeafTp=3Dunsignedlonglong>
> classbit_vector
> {
> // pretty much like bitset except I would add
> usingleaf_type =3DLeafTp;
>     leaf_iterator lbegin()//
>     leaf_iterator lend();//
> };
> |
>
> People who do encryption wanted to set the size of the leaf and have=20
> access to leaves.
> I chose bit_array and bit_vector to have a similar relationship as=20
> array and vector do.
For the names I believe we should stay close to bitset and=20
dynamic_bitset. But we can not use bitset :(
I need to think more about your bit_array/bit_vector suggestion, but=20
array/vector don't have set operations. I will go towards bit_set and=20
dynamic_bit_set.
In addition bit_array<int16_t, 10> could be misleading as array<int16_t,=20
10> has a completely different meaning and layout. Do we have 10 int16_t?

Vicente

--=20
You received this message because you are subscribed to the Google Groups "=
ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
To view this discussion on the web visit https://groups.google.com/a/isocpp=
..org/d/msgid/std-proposals/3c737844-0d92-3713-7b7d-06130959a877%40wanadoo.f=
r.

--------------3A7744E93E813B6D652594CA
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<html>
  <head>
    <meta content=3D"text/html; charset=3Dutf-8" http-equiv=3D"Content-Type=
">
  </head>
  <body bgcolor=3D"#FFFFFF" text=3D"#000000">
    <div class=3D"moz-cite-prefix">Le 08/03/2017 =C3=A0 06:23,
      <a class=3D"moz-txt-link-abbreviated" href=3D"mailto:3dw4rd@verizon.n=
et">3dw4rd@verizon.net</a> a =C3=A9crit=C2=A0:<br>
    </div>
    <blockquote
      cite=3D"mid:4238c4e6-51f5-4a2f-94c8-f61ca415e7e0@isocpp.org"
      type=3D"cite">
      <div dir=3D"ltr"><br>
        <br>
        On Tuesday, February 21, 2017 at 3:40:00 PM UTC-5, ricky6565
        wrote:
        <blockquote class=3D"gmail_quote" style=3D"margin: 0;margin-left:
          0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;">
          <div dir=3D"ltr">Hi Vicente,
            <div><br>
            </div>
            <div><font face=3D"arial, sans-serif" size=3D"2">I think the <a
                  moz-do-not-send=3D"true"
                  href=3D"https://github.com/ClaasBontus/bitset2"
                  target=3D"_blank" rel=3D"nofollow"
onmousedown=3D"this.href=3D'https://www.google.com/url?q\x3dhttps%3A%2F%2Fg=
ithub.com%2FClaasBontus%2Fbitset2\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNG=
K_wFmX3DVScYeyAQGywgQn25crA';return
                  true;"
onclick=3D"this.href=3D'https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithu=
b.com%2FClaasBontus%2Fbitset2\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNGK_wF=
mX3DVScYeyAQGywgQn25crA';return
                  true;">Bitset2 </a>library by Claas Bontus provides
                what you are looking for. It's like std::bitset but with
                enhanced functionality. It let's you set the underlying
                integral type of the bitset. In fact, it=C2=A0<span
                  style=3D"color:rgb(51,51,51)">defaults to uint8_t,
                  uint16_t, or uint32_t=C2=A0</span><span
                  style=3D"color:rgb(51,51,51)">if N</span><span
                  style=3D"color:rgb(51,51,51)">=C2=A0bits fit into those
                  integers.</span>=C2=A0I would like this functionality add=
ed
                to std::bitset but, as you said, it would probably be a
                breaking change.</font></div>
            <div><br>
            </div>
            <div>Riccardo<br>
            </div>
          </div>
        </blockquote>
        <div><br>
          I was just thinking something similar.=C2=A0 Allow the user to
          specify the bitset leaf-type:<br>
          <br>
          <div style=3D"background-color: rgb(250, 250, 250);
            border-color: rgb(187, 187, 187); border-style: solid;
            border-width: 1px; overflow-wrap: break-word;"
            class=3D"prettyprint"><code class=3D"prettyprint">
              <div class=3D"subprettyprint"><span style=3D"color: #008;"
                  class=3D"styled-by-prettify">template</span><span
                  style=3D"color: #660;" class=3D"styled-by-prettify">&lt;<=
/span><span
                  style=3D"color: #008;" class=3D"styled-by-prettify">typen=
ame</span><span
                  style=3D"color: #000;" class=3D"styled-by-prettify"> </sp=
an><span
                  style=3D"color: #606;" class=3D"styled-by-prettify">LeafT=
p</span><span
                  style=3D"color: #000;" class=3D"styled-by-prettify"> </sp=
an><span
                  style=3D"color: #660;" class=3D"styled-by-prettify">=3D</=
span><span
                  style=3D"color: #000;" class=3D"styled-by-prettify"> </sp=
an><span
                  style=3D"color: #008;" class=3D"styled-by-prettify">unsig=
ned</span><span
                  style=3D"color: #000;" class=3D"styled-by-prettify"> </sp=
an><span
                  style=3D"color: #008;" class=3D"styled-by-prettify">long<=
/span><span
                  style=3D"color: #000;" class=3D"styled-by-prettify"> </sp=
an><span
                  style=3D"color: #008;" class=3D"styled-by-prettify">long<=
/span><span
                  style=3D"color: #660;" class=3D"styled-by-prettify">,</sp=
an><span
                  style=3D"color: #000;" class=3D"styled-by-prettify"> std<=
/span><span
                  style=3D"color: #660;" class=3D"styled-by-prettify">::</s=
pan><span
                  style=3D"color: #000;" class=3D"styled-by-prettify">size_=
t
                </span><span style=3D"color: #606;"
                  class=3D"styled-by-prettify">Bits</span><span
                  style=3D"color: #000;" class=3D"styled-by-prettify"> </sp=
an><span
                  style=3D"color: #660;" class=3D"styled-by-prettify">=3D</=
span><span
                  style=3D"color: #000;" class=3D"styled-by-prettify"> std<=
/span><span
                  style=3D"color: #660;" class=3D"styled-by-prettify">::</s=
pan><span
                  style=3D"color: #000;" class=3D"styled-by-prettify">numer=
ic_limits</span><span
                  style=3D"color: #660;" class=3D"styled-by-prettify">&lt;<=
/span><span
                  style=3D"color: #606;" class=3D"styled-by-prettify">LeafT=
p</span><span
                  style=3D"color: #660;" class=3D"styled-by-prettify">&gt;:=
:</span><span
                  style=3D"color: #000;" class=3D"styled-by-prettify">digit=
s</span><span
                  style=3D"color: #660;" class=3D"styled-by-prettify">&gt;<=
/span><span
                  style=3D"color: #000;" class=3D"styled-by-prettify"><br>
                  =C2=A0 </span><span style=3D"color: #008;"
                  class=3D"styled-by-prettify">class</span><span
                  style=3D"color: #000;" class=3D"styled-by-prettify">
                  bit_array<br>
                  =C2=A0 </span><span style=3D"color: #660;"
                  class=3D"styled-by-prettify">{</span><span style=3D"color=
:
                  #000;" class=3D"styled-by-prettify"><br>
                  =C2=A0 =C2=A0 </span><span style=3D"color: #800;"
                  class=3D"styled-by-prettify">// pretty much like bitset
                  except I would add</span><span style=3D"color: #000;"
                  class=3D"styled-by-prettify"><br>
                  =C2=A0 =C2=A0 </span><span style=3D"color: #008;"
                  class=3D"styled-by-prettify">using</span><span
                  style=3D"color: #000;" class=3D"styled-by-prettify">
                  leaf_type </span><span style=3D"color: #660;"
                  class=3D"styled-by-prettify">=3D</span><span style=3D"col=
or:
                  #000;" class=3D"styled-by-prettify"> </span><span
                  style=3D"color: #606;" class=3D"styled-by-prettify">LeafT=
p</span><span
                  style=3D"color: #660;" class=3D"styled-by-prettify">;</sp=
an><span
                  style=3D"color: #000;" class=3D"styled-by-prettify"><br>
                  =C2=A0 =C2=A0 leaf_iterator lbegin</span><span style=3D"c=
olor:
                  #660;" class=3D"styled-by-prettify">()</span><span
                  style=3D"color: #000;" class=3D"styled-by-prettify"> </sp=
an><span
                  style=3D"color: #800;" class=3D"styled-by-prettify">// </=
span><span
                  style=3D"color: #000;" class=3D"styled-by-prettify"><br>
                  =C2=A0 =C2=A0 leaf_iterator lend</span><span style=3D"col=
or:
                  #660;" class=3D"styled-by-prettify">();</span><span
                  style=3D"color: #000;" class=3D"styled-by-prettify"> </sp=
an><span
                  style=3D"color: #800;" class=3D"styled-by-prettify">// </=
span><span
                  style=3D"color: #000;" class=3D"styled-by-prettify"><br>
                  =C2=A0 </span><span style=3D"color: #660;"
                  class=3D"styled-by-prettify">};</span><span
                  style=3D"color: #000;" class=3D"styled-by-prettify"><br>
                  <br>
                </span></div>
            </code></div>
          <br>
          This is flipped relative to Bitset2 in that leaf type comes
          first and the template would decide how many leaves based on
          bits.<br>
          <br>
          So now you could get these small bitsets:<br>
          using bitset16 =3D bit_array&lt;uint16_t&gt;;<br>
          etc.<br>
          <br>
        </div>
      </div>
    </blockquote>
    I believe that both orders could have have usage (see below), an
    alias templates should help here to have both.<br>
    However I don't like the possibility to have bit_array&lt;&gt;. How
    many bits do we have?<br>
    <br>
    If the data function returns a span&lt;T,N&gt; we don't need the
    leaf iterator functions.<br>
    =C2=A0<br>
    <br>
    <blockquote
      cite=3D"mid:4238c4e6-51f5-4a2f-94c8-f61ca415e7e0@isocpp.org"
      type=3D"cite">
      <div dir=3D"ltr">
        <div><font size=3D"2">I've heard people want similar choices for a
            dynamic_bitset:<br>
          </font>
          <div style=3D"background-color: rgb(250, 250, 250);
            border-color: rgb(187, 187, 187); border-style: solid;
            border-width: 1px; overflow-wrap: break-word;"
            class=3D"prettyprint"><code class=3D"prettyprint">
              <div class=3D"subprettyprint"><span style=3D"color: #008;"
                  class=3D"styled-by-prettify">template</span><span
                  style=3D"color: #660;" class=3D"styled-by-prettify">&lt;<=
/span><span
                  style=3D"color: #008;" class=3D"styled-by-prettify">typen=
ame</span><span
                  style=3D"color: #000;" class=3D"styled-by-prettify"> </sp=
an><span
                  style=3D"color: #606;" class=3D"styled-by-prettify">LeafT=
p</span><span
                  style=3D"color: #000;" class=3D"styled-by-prettify"> </sp=
an><span
                  style=3D"color: #660;" class=3D"styled-by-prettify">=3D</=
span><span
                  style=3D"color: #000;" class=3D"styled-by-prettify"> </sp=
an><span
                  style=3D"color: #008;" class=3D"styled-by-prettify">unsig=
ned</span><span
                  style=3D"color: #000;" class=3D"styled-by-prettify"> </sp=
an><span
                  style=3D"color: #008;" class=3D"styled-by-prettify">long<=
/span><span
                  style=3D"color: #000;" class=3D"styled-by-prettify"> </sp=
an><span
                  style=3D"color: #008;" class=3D"styled-by-prettify">long<=
/span><span
                  style=3D"color: #660;" class=3D"styled-by-prettify">&gt;<=
/span><span
                  style=3D"color: #000;" class=3D"styled-by-prettify"><br>
                  =C2=A0 </span><span style=3D"color: #008;"
                  class=3D"styled-by-prettify">class</span><span
                  style=3D"color: #000;" class=3D"styled-by-prettify">
                  bit_vector<br>
                  =C2=A0 </span><span style=3D"color: #660;"
                  class=3D"styled-by-prettify">{</span><span style=3D"color=
:
                  #000;" class=3D"styled-by-prettify"><br>
                  =C2=A0 =C2=A0 </span><span style=3D"color: #800;"
                  class=3D"styled-by-prettify">// pretty much like bitset
                  except I would add</span><span style=3D"color: #000;"
                  class=3D"styled-by-prettify"><br>
                  =C2=A0 =C2=A0 </span><span style=3D"color: #008;"
                  class=3D"styled-by-prettify">using</span><span
                  style=3D"color: #000;" class=3D"styled-by-prettify">
                  leaf_type </span><span style=3D"color: #660;"
                  class=3D"styled-by-prettify">=3D</span><span style=3D"col=
or:
                  #000;" class=3D"styled-by-prettify"> </span><span
                  style=3D"color: #606;" class=3D"styled-by-prettify">LeafT=
p</span><span
                  style=3D"color: #660;" class=3D"styled-by-prettify">;</sp=
an><span
                  style=3D"color: #000;" class=3D"styled-by-prettify"><br>
                  =C2=A0 =C2=A0 leaf_iterator lbegin</span><span style=3D"c=
olor:
                  #660;" class=3D"styled-by-prettify">()</span><span
                  style=3D"color: #000;" class=3D"styled-by-prettify"> </sp=
an><span
                  style=3D"color: #800;" class=3D"styled-by-prettify">// </=
span><span
                  style=3D"color: #000;" class=3D"styled-by-prettify"><br>
                  =C2=A0 =C2=A0 leaf_iterator lend</span><span style=3D"col=
or:
                  #660;" class=3D"styled-by-prettify">();</span><span
                  style=3D"color: #000;" class=3D"styled-by-prettify"> </sp=
an><span
                  style=3D"color: #800;" class=3D"styled-by-prettify">// </=
span><span
                  style=3D"color: #000;" class=3D"styled-by-prettify"><br>
                  =C2=A0 </span><span style=3D"color: #660;"
                  class=3D"styled-by-prettify">};</span><span
                  style=3D"color: #000;" class=3D"styled-by-prettify"><br>
                </span></div>
            </code></div>
          <br>
          People who do encryption wanted to set the size of the leaf
          and have access to leaves.<br>
          I chose <span style=3D"font-family: courier new,monospace;">bit_a=
rray</span>
          and <span style=3D"font-family: courier new,monospace;">bit_vecto=
r</span>
          to have a similar relationship as <span style=3D"font-family:
            courier new,monospace;">array</span> and <span
            style=3D"font-family: courier new,monospace;">vector</span>
          do.<br>
        </div>
      </div>
    </blockquote>
    For the names I believe we should stay close to bitset and
    dynamic_bitset. But we can not use bitset :(<br>
    I need to think more about your bit_array/bit_vector suggestion, but
    array/vector don't have set operations. I will go towards bit_set
    and dynamic_bit_set.<br>
    In addition bit_array&lt;int16_t, 10&gt; could be misleading as
    array&lt;int16_t, 10&gt; has a completely different meaning and
    layout. Do we have 10 int16_t?<br>
    <br>
    Vicente<br>
  </body>
</html>

<p></p>

-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/3c737844-0d92-3713-7b7d-06130959a877%=
40wanadoo.fr?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/3c737844-0d92-3713-7b7d-06130959a877=
%40wanadoo.fr</a>.<br />

--------------3A7744E93E813B6D652594CA--

.
