diff options
| author | Marshall Clow <mclow.lists@gmail.com> | 2018-01-11 19:36:22 +0000 |
|---|---|---|
| committer | Marshall Clow <mclow.lists@gmail.com> | 2018-01-11 19:36:22 +0000 |
| commit | 0e22bf8cb963d34439c8aef38acf626c29f0f804 (patch) | |
| tree | f00550065a28bacd646c0a27bf4e90de8bc1ae7e /libcxx/include | |
| parent | aac638eb1e96629badbdd68a0e68e96c61bf9d21 (diff) | |
| download | bcm5719-llvm-0e22bf8cb963d34439c8aef38acf626c29f0f804.tar.gz bcm5719-llvm-0e22bf8cb963d34439c8aef38acf626c29f0f804.zip | |
Implement an _is_allocator type trait for use in deduction guides.
llvm-svn: 322306
Diffstat (limited to 'libcxx/include')
| -rw-r--r-- | libcxx/include/memory | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/libcxx/include/memory b/libcxx/include/memory index d6b427b941b..56502e2a15a 100644 --- a/libcxx/include/memory +++ b/libcxx/include/memory @@ -5597,6 +5597,16 @@ struct __temp_value { }; #endif +#if _LIBCPP_STD_VER > 14 +template<typename _Alloc, typename = void> +struct __is_allocator : false_type {}; + +template<typename _Alloc> +struct __is_allocator<_Alloc, + void_t<typename _Alloc::value_type, decltype(_VSTD::declval<_Alloc&>().allocate(size_t{}))>> + : true_type {}; +#endif + _LIBCPP_END_NAMESPACE_STD _LIBCPP_POP_MACROS |

