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 @@ -517,6 +517,33 @@ static std::nullptr_t nonesuch = nullptr;
517517// TODO: Does this really warrant a new synonym? Perhaps "is void" is enough
518518using empty = void ;
519519
520+ template <template <typename ...> class C , typename ... Ts>
521+ constexpr auto is (C< Ts...> const & ) -> bool {
522+ return true ;
523+ }
524+
525+ #if defined(_MSC_VER)
526+ template <template <typename , typename ...> class C , typename T>
527+ constexpr auto is ( T const & ) -> bool {
528+ return false ;
529+ }
530+ #else
531+ template <template <typename ...> class C , typename T>
532+ constexpr auto is ( T const & ) -> bool {
533+ return false ;
534+ }
535+ #endif
536+
537+ template <template <typename ,auto > class C , typename T, auto V>
538+ constexpr auto is ( C<T, V> const & ) -> bool {
539+ return true ;
540+ }
541+
542+ template <template <typename ,auto > class C , typename T>
543+ constexpr auto is ( T const & ) -> bool {
544+ return false ;
545+ }
546+
520547template < typename C, typename X >
521548auto is ( X const & ) -> bool {
522549 return false ;
You can’t perform that action at this time.
0 commit comments