SpECTRE  2021.08.02
tt::is_a< U, T > Struct Template Reference

Check if type T is a template specialization of U More...

#include <IsA.hpp>

Detailed Description

template<template< typename... > class U, typename T>
struct tt::is_a< U, T >

Check if type T is a template specialization of U

Requires: U is a class template

Effects: If T is a template specialization of U, then inherits from std::true_type, otherwise inherits from std::false_type

Usage

For any type T and class template U

using result = tt::is_a<U, T>;
Check if type T is a template specialization of U
Definition: IsA.hpp:41

Returns: std::bool_constant

Semantics: If the type T is a template specialization of the type U, then

typename result::type = std::true_type;

otherwise

typename result::type = std::false_type;

Example

"Failed testing type trait is_a<vector>");
"Failed testing type trait is_a<vector>");
static_assert(tt::is_a_v<std::vector, std::vector<D>>,
"Failed testing type trait is_a<vector>");
"Failed testing type trait is_a<deque>");
"Failed testing type trait is_a<deque>");
static_assert(tt::is_a<std::deque, std::deque<D>>::value,
"Failed testing type trait is_a<deque>");
"Failed testing type trait is_a<forward_list>");
"Failed testing type trait is_a<forward_list>");
"Failed testing type trait is_a<forward_list>");
"Failed testing type trait is_a<list>");
"Failed testing type trait is_a<list>");
static_assert(tt::is_a<std::list, std::list<D>>::value,
"Failed testing type trait is_a<list>");
"Failed testing type trait is_a<map>");
"Failed testing type trait is_a<map>");
"Failed testing type trait is_a<map>");
"Failed testing type trait is_a<unordered_map>");
"Failed testing type trait is_a<unordered_map>");
static_assert(
"Failed testing type trait is_a<unordered_map>");
"Failed testing type trait is_a<set>");
"Failed testing type trait is_a<set>");
static_assert(tt::is_a<std::set, std::set<D>>::value,
"Failed testing type trait is_a<set>");
"Failed testing type trait is_a<unordered_set>");
"Failed testing type trait is_a<unordered_set>");
"Failed testing type trait is_a<unordered_set>");
"Failed testing type trait is_a<multiset>");
"Failed testing type trait is_a<multiset>");
"Failed testing type trait is_a<multiset>");
static_assert(
"Failed testing type trait is_a<unordered_multiset>");
"Failed testing type trait is_a<unordered_multiset>");
static_assert(
"Failed testing type trait is_a<unordered_multiset>");
static_assert(
"Failed testing type trait is_a<multimap>");
"Failed testing type trait is_a<multimap>");
"Failed testing type trait is_a<multimap>");
"Failed testing type trait is_a<unordered_multimap>");
"Failed testing type trait is_a<unordered_multimap>");
"Failed testing type trait is_a<unordered_multimap>");
"Failed testing type trait is_a<priority_queue>");
"Failed testing type trait is_a<priority_queue>");
"Failed testing type trait is_a<priority_queue>");
"Failed testing type trait is_a<queue>");
"Failed testing type trait is_a<queue>");
static_assert(tt::is_a<std::queue, std::queue<D>>::value,
"Failed testing type trait is_a<queue>");
"Failed testing type trait is_a<stack>");
"Failed testing type trait is_a<stack>");
static_assert(tt::is_a<std::stack, std::stack<D>>::value,
"Failed testing type trait is_a<stack>");
"Failed testing type trait is_a<unique_ptr>");
"Failed testing type trait is_a<unique_ptr>");
"Failed testing type trait is_a<unique_ptr>");
"Failed testing type trait is_a<unique_ptr>");
"Failed testing type trait is_a<shared_ptr>");
"Failed testing type trait is_a<shared_ptr>");
"Failed testing type trait is_a<shared_ptr>");
"Failed testing type trait is_a<shared_ptr>");
"Failed testing type trait is_a<weak_ptr>");
"Failed testing type trait is_a<weak_ptr>");
"Failed testing type trait is_a<weak_ptr>");
"Failed testing type trait is_a<weak_ptr>");
"Failed testing type trait is_a");
"Failed testing type trait is_a");
"Failed testing type trait is_a<future>");
"Failed testing type trait is_a<future>");
"Failed testing type trait is_a<future>");
"Failed testing type trait is_a<shared_future>");
"Failed testing type trait is_a<shared_future>");
"Failed testing type trait is_a<shared_future>");
typename is_a< U, Args... >::type is_a_t
Definition: IsA.hpp:54
See also
is_std_array
Template Parameters
Ttype to check
Uthe type that T might be a template specialization of