Concepts¶
Defined in headers holor/holor_concepts.h
and holor/layout_concepts.h
, within the namespace holor
.
HolorLib provide the definition of concepts that can be used to identify types that are a Layout
or a holor container (Holor
or HolorRef
).
Layout concepts¶
Concepts that describes a type that is a Layout (or that can decay to a Layout).
LayoutType¶
template <typename T>
concept LayoutType
brief¶
This concept denotes a type that is a Layout (not a reference or pointer to a Layout).
example¶
using namespace holor;
std::cout << LayoutType<Layout<2>> << "\n"; //prints 1
std::cout << LayoutType<Layout<2>&> << "\n"; //prints 0
DecaysToLayoutType¶
template <typename T>
concept DecaysToLayoutType
brief¶
This concept denotes a type that decays to a LayoutType
example¶
using namespace holor;
std::cout << DecaysToLayoutType<Layout<2>> << "\n"; //prints 1
std::cout << DecaysToLayoutType<Layout<2>&> << "\n"; //prints 1
Holor concepts¶
Concepts that describes a type that is a Holor (or that can decay to a Holor).
HolorType¶
template <typename T>
concept HolorType
brief¶
This concept denotes a type that is a Holor (not a reference or pointer to a Holor).
example¶
using namespace holor;
std::cout << HolorType<Holor<int, 2>> << "\n"; //prints 1
std::cout << HolorType<Holor<int, 2>&> << "\n"; //prints 0
std::cout << HolorType<HolorRef<int, 2>> << "\n"; //prints 1
std::cout << HolorType<HolorRef<int, 2>&> << "\n"; //prints 0
DecaysToHolorType¶
template <typename T>
concept DecaysToHolorType
brief¶
This concept denotes a type that decays to a HolorType
example¶
using namespace holor;
std::cout << DecaysToHolorType<Holor<int, 2>> << "\n"; //prints 1
std::cout << DecaysToHolorType<Holor<int, 2>&> << "\n"; //prints 1
std::cout << DecaysToHolorType<HolorRef<int, 2>> << "\n"; //prints 1
std::cout << DecaysToHolorType<HolorRef<int, 2>&> << "\n"; //prints 1