File tree 1 file changed +27
-0
lines changed 1 file changed +27
-0
lines changed Original file line number Diff line number Diff line change @@ -517,6 +517,33 @@ static std::nullptr_t nonesuch = nullptr;
517
517
// TODO: Does this really warrant a new synonym? Perhaps "is void" is enough
518
518
using empty = void ;
519
519
520
+ template <template <typename ...> class C , typename ... Ts>
521
+ constexpr auto is (C< Ts...> const & ) -> bool {
522
+ return true ;
523
+ }
524
+
525
+ #if defined(_MSC_VER)
526
+ template <template <typename , typename ...> class C , typename T>
527
+ constexpr auto is ( T const & ) -> bool {
528
+ return false ;
529
+ }
530
+ #else
531
+ template <template <typename ...> class C , typename T>
532
+ constexpr auto is ( T const & ) -> bool {
533
+ return false ;
534
+ }
535
+ #endif
536
+
537
+ template <template <typename ,auto > class C , typename T, auto V>
538
+ constexpr auto is ( C<T, V> const & ) -> bool {
539
+ return true ;
540
+ }
541
+
542
+ template <template <typename ,auto > class C , typename T>
543
+ constexpr auto is ( T const & ) -> bool {
544
+ return false ;
545
+ }
546
+
520
547
template < typename C, typename X >
521
548
auto is ( X const & ) -> bool {
522
549
return false ;
You can’t perform that action at this time.
0 commit comments