SpECTRE
v2022.05.05
|
Classes that define metaprogramming interfaces. More...
Classes | |
struct | dg::protocols::NumericalFlux |
Defines the interface for DG numerical fluxes. More... | |
struct | tt::ConformsTo< Protocol > |
Indicate a class conforms to the Protocol . More... | |
template<typename ConformingType , typename Protocol > | |
using | tt::conforms_to = typename std::is_convertible< ConformingType *, ConformsTo< Protocol > * > |
Checks if the ConformingType conforms to the Protocol . More... | |
template<typename ConformingType , typename Protocol > | |
constexpr bool | tt::conforms_to_v |
Checks if the ConformingType conforms to the Protocol . More... | |
Classes that define metaprogramming interfaces.
See the Protocols section of the dev guide for details.
using tt::conforms_to = typedef typename std::is_convertible<ConformingType*, ConformsTo<Protocol>*> |
Checks if the ConformingType
conforms to the Protocol
.
This metafunction is SFINAE-friendly. See tt::assert_conforms_to
for a metafunction that is not SFINAE-friendly but that triggers static asserts with diagnostic messages to understand why the ConformingType
does not conform to the Protocol
.
This metafunction only checks if the class derives off the protocol to reduce compile time. Protocol conformance is tested rigorously in the unit tests instead.
|
constexpr |
Checks if the ConformingType
conforms to the Protocol
.
This metafunction is SFINAE-friendly. See tt::assert_conforms_to
for a metafunction that is not SFINAE-friendly but that triggers static asserts with diagnostic messages to understand why the ConformingType
does not conform to the Protocol
.
This metafunction only checks if the class derives off the protocol to reduce compile time. Protocol conformance is tested rigorously in the unit tests instead.