File tree 1 file changed +29
-0
lines changed
1 file changed +29
-0
lines changed Original file line number Diff line number Diff line change @@ -580,6 +580,35 @@ static nonesuch_ nonesuch;
580
580
using empty = void ;
581
581
582
582
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
+
583
612
// Types
584
613
//
585
614
template < typename C, typename X >
You can’t perform that action at this time.
0 commit comments