File tree Expand file tree Collapse file tree 1 file changed +27
-0
lines changed Expand file tree Collapse file tree 1 file changed +27
-0
lines changed Original file line number Diff line number Diff line change @@ -556,6 +556,33 @@ static std::nullptr_t nonesuch = nullptr;
556
556
// TODO: Does this really warrant a new synonym? Perhaps "is void" is enough
557
557
using empty = void ;
558
558
559
+ template <template <typename ...> class C , typename ... Ts>
560
+ constexpr auto is (C< Ts...> const & ) -> bool {
561
+ return true ;
562
+ }
563
+
564
+ #if defined(_MSC_VER)
565
+ template <template <typename , typename ...> class C , typename T>
566
+ constexpr auto is ( T const & ) -> bool {
567
+ return false ;
568
+ }
569
+ #else
570
+ template <template <typename ...> class C , typename T>
571
+ constexpr auto is ( T const & ) -> bool {
572
+ return false ;
573
+ }
574
+ #endif
575
+
576
+ template <template <typename ,auto > class C , typename T, auto V>
577
+ constexpr auto is ( C<T, V> const & ) -> bool {
578
+ return true ;
579
+ }
580
+
581
+ template <template <typename ,auto > class C , typename T>
582
+ constexpr auto is ( T const & ) -> bool {
583
+ return false ;
584
+ }
585
+
559
586
template < typename C, typename X >
560
587
auto is ( X const & ) -> bool {
561
588
return false ;
You can’t perform that action at this time.
0 commit comments