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