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