<div dir="ltr">Looking again, it seems like a libc++ bug. Not sure if Howard intended to be non-conforming here, but it's likely a mistake.<div><br></div><div>Feel free to file a bug.</div><div><br></div><div>/Eric</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Nov 14, 2017 at 4:20 PM, Hubert Tong <span dir="ltr"><<a href="mailto:hubert.reinterpretcast@gmail.com" target="_blank">hubert.reinterpretcast@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><span class="">On Tue, Nov 14, 2017 at 6:13 PM, Eric Fiselier via cfe-dev <span dir="ltr"><<a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Unless I'm mis-reading the spec, `vector<bool>::const_reference<wbr>` is implementation defined. Not bool. See <a href="http://eel.is/c++draft/vector.bool" target="_blank">[vector.bool]</a>.</div></blockquote></span><div>It says: <br></div><div><pre class="m_-8085601205000997939gmail-codeblock">using const_reference        = bool;</pre><br> </div><span class=""><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div><br></div><div>/Eric</div></div><div class="gmail_extra"><br><div class="gmail_quote"><div><div class="m_-8085601205000997939gmail-h5">On Tue, Nov 14, 2017 at 6:39 AM, Mikhail Maltsev via cfe-dev <span dir="ltr"><<a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a>></span> wrote:<br></div></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div><div class="m_-8085601205000997939gmail-h5"><div dir="ltr"><div style="font-family:monospace,monospace">Hi. According to the C++ Standard (section [vector.bool]), std::vector<bool>::const_refer<wbr>ence should be defined as bool. libc++ defines it as std::__1::__bit_const_referenc<wbr>e<std::__1::vector<bool, std::__1::allocator<bool>>>]. Is this divergence from the standard intentional? If it is, what is the purpose?<span class="m_-8085601205000997939gmail-m_-436574453916234742HOEnZb"><font color="#888888"><br clear="all"></font></span></div><span class="m_-8085601205000997939gmail-m_-436574453916234742HOEnZb"><font color="#888888"><br>-- <br><div class="m_-8085601205000997939gmail-m_-436574453916234742m_-3210636199286463016gmail_signature">Regards,<br>   Mikhail Maltsev</div>
</font></span></div>
<br></div></div>______________________________<wbr>_________________<br>
cfe-dev mailing list<br>
<a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/cfe-dev</a><br>
<br></blockquote></div><br></div>
<br>______________________________<wbr>_________________<br>
cfe-dev mailing list<br>
<a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/cfe-dev</a><br>
<br></blockquote></span></div><br></div></div>
</blockquote></div><br></div>