File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -574,6 +574,33 @@ static std::nullptr_t nonesuch = nullptr;
574574// TODO: Does this really warrant a new synonym? Perhaps "is void" is enough
575575using empty = void ;
576576
577+ template <template <typename ...> class C , typename ... Ts>
578+ constexpr auto is (C< Ts...> const & ) -> bool {
579+ return true ;
580+ }
581+
582+ #if defined(_MSC_VER)
583+ template <template <typename , typename ...> class C , typename T>
584+ constexpr auto is ( T const & ) -> bool {
585+ return false ;
586+ }
587+ #else
588+ template <template <typename ...> class C , typename T>
589+ constexpr auto is ( T const & ) -> bool {
590+ return false ;
591+ }
592+ #endif
593+
594+ template <template <typename ,auto > class C , typename T, auto V>
595+ constexpr auto is ( C<T, V> const & ) -> bool {
596+ return true ;
597+ }
598+
599+ template <template <typename ,auto > class C , typename T>
600+ constexpr auto is ( T const & ) -> bool {
601+ return false ;
602+ }
603+
577604template < typename C, typename X >
578605auto is ( X const & ) -> bool {
579606 return false ;
You can’t perform that action at this time.
0 commit comments