[libcxx-commits] [PATCH] D58945: Fix ABI compatibility of `<stdexcept>` with VCRuntime.

Eric Fiselier via Phabricator via libcxx-commits libcxx-commits at lists.llvm.org
Wed Mar 6 12:24:00 PST 2019


EricWF marked 3 inline comments as done.
EricWF added inline comments.


================
Comment at: include/stdexcept:96
+public:
+    explicit logic_error(const _VSTD::string&); // Symbol uses versioned std::string
+    _LIBCPP_INLINE_VISIBILITY explicit logic_error(const char* __s) : exception(__s) {}
----------------
ldionne wrote:
> Ah, so libc++ is using `std::string`, and vcruntime is using `std::__1::string`? But libc++ only defines `basic_string` in namespace `__1`, so aren't both actually referring to `std::__1::string`? I'm a bit confused.
> 
The comment calls out the weirdness that `std::logic_error` isn't versioned, but `std::__1::string` is. So we don't actually provide the same  as vcruntimes `logic_error`. But that shouldn't be a problem, and means we can put the constructor out-of-line.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D58945/new/

https://reviews.llvm.org/D58945





More information about the libcxx-commits mailing list