SpECTRE  v2024.04.12
tt::remove_cvref_wrap< T > Struct Template Reference

Removes std::reference_wrapper, references, and cv qualifiers. More...

#include <RemoveReferenceWrapper.hpp>

Public Types

using type = cpp20::remove_cvref_t< tt::remove_reference_wrapper_t< T > >
 

Detailed Description

template<typename T>
struct tt::remove_cvref_wrap< T >

Removes std::reference_wrapper, references, and cv qualifiers.

Example

static_assert(std::is_same_v<tt::remove_cvref_wrap_t<int>, int>,
"Failed testing remove_cvref_wrap");
static_assert(std::is_same_v<tt::remove_cvref_wrap_t<int&>, int>,
"Failed testing remove_cvref_wrap");
static_assert(std::is_same_v<tt::remove_cvref_wrap_t<const int&>, int>,
"Failed testing remove_cvref_wrap");
static_assert(std::is_same_v<tt::remove_cvref_wrap_t<int&&>, int>,
"Failed testing remove_cvref_wrap");
static_assert(std::is_same_v<tt::remove_cvref_wrap_t<const int&&>, int>,
"Failed testing remove_cvref_wrap");
static_assert(std::is_same_v<tt::remove_cvref_wrap_t<const int>, int>,
"Failed testing remove_cvref_wrap");
static_assert(std::is_same_v<tt::remove_cvref_wrap_t<volatile int>, int>,
"Failed testing remove_cvref_wrap");
static_assert(std::is_same_v<tt::remove_cvref_wrap_t<const volatile int>, int>,
"Failed testing remove_cvref_wrap");
static_assert(std::is_same_v<tt::remove_cvref_wrap_t<volatile int&>, int>,
"Failed testing remove_cvref_wrap");
static_assert(std::is_same_v<tt::remove_cvref_wrap_t<const volatile int&>, int>,
"Failed testing remove_cvref_wrap");
static_assert(std::is_same_v<tt::remove_cvref_wrap_t<volatile int&&>, int>,
"Failed testing remove_cvref_wrap");
static_assert(
std::is_same_v<tt::remove_cvref_wrap_t<const volatile int&&>, int>,
"Failed testing remove_cvref_wrap");
static_assert(
std::is_same_v<tt::remove_cvref_wrap_t<std::reference_wrapper<const int>>,
int>,
"Failed testing remove_cvref_wrap");
static_assert(
std::is_same_v<tt::remove_cvref_wrap_t<std::reference_wrapper<int>>, int>,
"Failed testing remove_cvref_wrap");
static_assert(
std::is_same_v<tt::remove_cvref_wrap_t<std::reference_wrapper<int*>>, int*>,
"Failed testing remove_cvref_wrap");
static_assert(
std::is_same_v<tt::remove_cvref_wrap_t<std::reference_wrapper<const int*>>,
const int*>,
"Failed testing remove_cvref_wrap");
static_assert(
std::is_same_v<tt::remove_cvref_wrap_t<std::reference_wrapper<int* const>>,
int*>,
"Failed testing remove_cvref_wrap");
static_assert(
std::is_same_v<tt::remove_cvref_wrap_t<const std::reference_wrapper<int>>,
int>,
"Failed testing remove_cvref_wrap");
static_assert(
std::is_same_v<
tt::remove_cvref_wrap_t<volatile std::reference_wrapper<int>>, int>,
"Failed testing remove_cvref_wrap");
static_assert(
std::is_same_v<
tt::remove_cvref_wrap_t<const volatile std::reference_wrapper<int>>,
int>,
"Failed testing remove_cvref_wrap");
See also
std::reference_wrapper remove_reference_wrapper std::remove_cvref

The documentation for this struct was generated from the following file: