llvm-project/libcxx
Eric Fiselier 86af6f5088 Allow optional to tolerate being used with a nested class.
When Clang tries to complete a type containing `std::optional` it
considers the `in_place_t` constructor with no arguments which checks
if the value type is default constructible. If the value type is a
nested class type, then this check occurs too early and poisons the
is_default_constructible trait.

This patch makes optional deduce `in_place_t` so we can prevent
this early SFINAE evaluation. Technically this could break people
doing weird things with the in_place_t tag, but that seems less
important than making the nested class case work.

llvm-svn: 355877
2019-03-11 22:55:21 +00:00
..
benchmarks [CMake] Use correct visibility for linked libraries in CMake 2019-01-30 23:18:05 +00:00
cmake [compiler-rt] Build custom libcxx with libcxxabi 2019-02-17 12:16:20 +00:00
docs [CMake] Support compiler-rt builtins library in tests 2019-02-05 19:50:47 +00:00
fuzzing Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
include Allow optional to tolerate being used with a nested class. 2019-03-11 22:55:21 +00:00
lib Revert "[libc++] Do not force building with -fPIC" 2019-03-08 23:27:46 +00:00
src LWG 2843 "Unclear behavior of std::pmr::memory_resource::do_allocate()" 2019-03-09 00:38:19 +00:00
test Allow optional to tolerate being used with a nested class. 2019-03-11 22:55:21 +00:00
utils [libc++] Only add dylib-related features when using the system's libc++ 2019-03-05 22:42:45 +00:00
www LWG 2843 "Unclear behavior of std::pmr::memory_resource::do_allocate()" 2019-03-09 00:38:19 +00:00
.arcconfig [libcxx] Set up .arcconfig to point to new Diffusion CXX repository 2017-12-04 17:55:28 +00:00
.clang-format Make clang-format use C++03 syntax 2017-04-15 02:45:43 +00:00
.gitignore Implement N4606 optional 2016-10-12 07:46:20 +00:00
CMakeLists.txt Revert "[runtimes] Move libunwind, libc++abi and libc++ to lib/ and include/" 2019-03-08 20:33:55 +00:00
CREDITS.TXT Try again, this time with the correct address 2017-12-29 19:26:53 +00:00
LICENSE.TXT Fix typos throughout the license files that somehow I and my reviewers 2019-01-21 09:52:34 +00:00
NOTES.TXT Reland "Use custom command and target to install libc++ headers" 2018-06-12 03:10:02 +00:00
TODO.TXT Add list of filesystem NB comments to TODO.TXT so they can be tracked separately 2017-03-06 21:23:36 +00:00
appveyor-reqs-install.cmd Update LLVM version used on Appveyor bot, remove MSVC 2015 bot 2018-10-30 21:23:31 +00:00
appveyor.yml Update LLVM version used on Appveyor bot, remove MSVC 2015 bot 2018-10-30 21:23:31 +00:00