[libc++] Add __is_callable type trait and begin granularizing type_traits
`__is_callable` is required to ensure that the classic algorithms are only called with functions or functors. I also begin to granularize `<type_traits>`. Reviewed By: ldionne, #libc Spies: libcxx-commits, mgorny Differential Revision: https://reviews.llvm.org/D123114
Showing
- libcxx/include/CMakeLists.txt 2 additions, 0 deletionslibcxx/include/CMakeLists.txt
- libcxx/include/__type_traits/integral_constant.h 50 additions, 0 deletionslibcxx/include/__type_traits/integral_constant.h
- libcxx/include/__type_traits/is_callable.h 32 additions, 0 deletionslibcxx/include/__type_traits/is_callable.h
- libcxx/include/module.modulemap 3 additions, 0 deletionslibcxx/include/module.modulemap
- libcxx/include/type_traits 3 additions, 39 deletionslibcxx/include/type_traits
- libcxx/test/libcxx/private_headers.verify.cpp 2 additions, 0 deletionslibcxx/test/libcxx/private_headers.verify.cpp
- libcxx/test/libcxx/type_traits/is_callable.compile.pass.cpp 31 additions, 0 deletionslibcxx/test/libcxx/type_traits/is_callable.compile.pass.cpp
libcxx/include/__type_traits/is_callable.h
0 → 100644