[libcxx-dev] Question: Why are std::exception & friends not in a versioned namespace?
Richard Smith via libcxx-dev
libcxx-dev at lists.llvm.org
Fri Oct 19 12:18:50 PDT 2018
On Wed, 17 Oct 2018 at 11:44, Ben Craig via libcxx-dev <
libcxx-dev at lists.llvm.org> wrote:
> "Magic" types that the compiler / core language know about don't go in the
> versioned namespace.
That certainly applies to things like std::type_info,
std::initializer_list, and std::bad_alloc, but std::exception is not
special in this regard.
Rather, I think the reason we don't version std::exception is so that in
code that mixes use of libc++ and libstdc++, one can throw an exception
derived from std::exception using one library and catch it using the other
library. (A special case of that: the default 'terminate' handler can print
out details of the thrown exception if it's derived from std::exception,
even if it's using the std::exception from a different stdlib.)
> > -----Original Message-----
> > From: libcxx-dev <libcxx-dev-bounces at lists.llvm.org> On Behalf Of Louis
> > Dionne via libcxx-dev
> > Sent: Wednesday, October 17, 2018 1:33 PM
> > To: libcxx-dev at lists.llvm.org
> > Subject: [libcxx-dev] Question: Why are std::exception & friends not in a
> > versioned namespace?
> > The title of the message pretty much says everything. I’m wondering why
> > `std::exception` is not `std::__1::exception` instead — most symbols are
> > the versioned namespace, but not this one.
> > Thanks,
> > Louis
> > _______________________________________________
> > libcxx-dev mailing list
> > libcxx-dev at lists.llvm.org
> > https://urldefense.proofpoint.com/v2/url?u=http-3A__lists.llvm.org_cgi-
> > 2Dbin_mailman_listinfo_libcxx-
> > 2Ddev&d=DwIGaQ&c=I_0YwoKy7z5LMTVdyO6YCiE2uzI1jjZZuIPelcSjixA&r=y8
> > mub81SfUi-UCZRX0Vl1g&m=SXXSmQhIwn-A25pzcb_sggzAo2-eOJsf6qXxNo-
> > nK0Y&s=CmmWD_6xN8H21UexX902giBa7RN0TM7POgqsYXG34VA&e=
> libcxx-dev mailing list
> libcxx-dev at lists.llvm.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the libcxx-dev