File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -578,6 +578,35 @@ static nonesuch_ nonesuch;
578578using empty = void ;
579579
580580
581+ // Templates
582+ //
583+ template <template <typename ...> class C , typename ... Ts>
584+ constexpr auto is (C< Ts...> const & ) -> bool {
585+ return true ;
586+ }
587+
588+ #if defined(_MSC_VER)
589+ template <template <typename , typename ...> class C , typename T>
590+ constexpr auto is ( T const & ) -> bool {
591+ return false ;
592+ }
593+ #else
594+ template <template <typename ...> class C , typename T>
595+ constexpr auto is ( T const & ) -> bool {
596+ return false ;
597+ }
598+ #endif
599+
600+ template <template <typename ,auto > class C , typename T, auto V>
601+ constexpr auto is ( C<T, V> const & ) -> bool {
602+ return true ;
603+ }
604+
605+ template <template <typename ,auto > class C , typename T>
606+ constexpr auto is ( T const & ) -> bool {
607+ return false ;
608+ }
609+
581610// Types
582611//
583612template < typename C, typename X >
You can’t perform that action at this time.
0 commit comments