[libcxx-commits] [PATCH] D114311: [libcxx] Make sequential containers slightly more SFINAE-friendly during CTAD.

Konstantin Varlamov via Phabricator via libcxx-commits libcxx-commits at lists.llvm.org
Fri Nov 19 20:17:29 PST 2021


var-const added a comment.

Note: testing the difference between the old and new SFINAE (differing in whether the parameter is deduced) is tricky. The non-deduced version works well on Clang for SFINAE purposes -- I can be wrong, but it seems like implementation-specific behavior (or worse, undefined behavior that happens to "work") that we cannot rely on. In tests, the difference only comes up in type traits like `static_assert(std::is_default_constructible<std::vector<int, BadAlloc>>)` -- it looks like the compiler checks all function signatures but not function bodies in that case, leading to a situation where there's a hard error due to incorrect SFINAE while "obvious" errors in the function bodies when the bad allocator is used are ignored.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D114311



More information about the libcxx-commits mailing list