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 @@ -578,6 +578,35 @@ static nonesuch_ nonesuch;
578
578
using empty = void ;
579
579
580
580
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
+
581
610
// Types
582
611
//
583
612
template < typename C, typename X >
You can’t perform that action at this time.
0 commit comments