File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -556,6 +556,33 @@ static std::nullptr_t nonesuch = nullptr;
556556// TODO: Does this really warrant a new synonym? Perhaps "is void" is enough
557557using empty = void ;
558558
559+ template <template <typename ...> class C , typename ... Ts>
560+ constexpr auto is (C< Ts...> const & ) -> bool {
561+ return true ;
562+ }
563+
564+ #if defined(_MSC_VER)
565+ template <template <typename , typename ...> class C , typename T>
566+ constexpr auto is ( T const & ) -> bool {
567+ return false ;
568+ }
569+ #else
570+ template <template <typename ...> class C , typename T>
571+ constexpr auto is ( T const & ) -> bool {
572+ return false ;
573+ }
574+ #endif
575+
576+ template <template <typename ,auto > class C , typename T, auto V>
577+ constexpr auto is ( C<T, V> const & ) -> bool {
578+ return true ;
579+ }
580+
581+ template <template <typename ,auto > class C , typename T>
582+ constexpr auto is ( T const & ) -> bool {
583+ return false ;
584+ }
585+
559586template < typename C, typename X >
560587auto is ( X const & ) -> bool {
561588 return false ;
You can’t perform that action at this time.
0 commit comments