File tree Expand file tree Collapse file tree 1 file changed +27
-0
lines changed
Expand file tree Collapse file tree 1 file changed +27
-0
lines changed Original file line number Diff line number Diff line change @@ -513,6 +513,33 @@ static std::nullptr_t nonesuch = nullptr;
513513// TODO: Does this really warrant a new synonym? Perhaps "is void" is enough
514514using empty = void ;
515515
516+ template <template <typename ...> class C , typename ... Ts>
517+ constexpr auto is (const C<Ts...>&) -> bool {
518+ return true ;
519+ }
520+
521+ #if defined(_MSC_VER)
522+ template <template <typename , typename ...> class C , typename T>
523+ constexpr auto is (const T&) -> bool {
524+ return false ;
525+ }
526+ #else
527+ template <template <typename ...> class C , typename T>
528+ constexpr auto is (const T&) -> bool {
529+ return false ;
530+ }
531+ #endif
532+
533+ template <template <typename ,auto > class C , typename T, auto V>
534+ constexpr auto is (const C<T, V>&) -> bool {
535+ return true ;
536+ }
537+
538+ template <template <typename ,auto > class C , typename T>
539+ constexpr auto is (const T&) -> bool {
540+ return false ;
541+ }
542+
516543template < typename C, typename X >
517544auto is ( X const & ) -> bool {
518545 return false ;
You can’t perform that action at this time.
0 commit comments