Definition of compile time checking utilities. More...
Go to the source code of this file.
Classes | |
class | instigate::scripting::generic::require< 1 > |
Utility class for compile time checking. More... | |
class | instigate::scripting::generic::conversion< T, U > |
This class helps us to detect convertibility and inheritance at compile time. To see whether U is same type as T we can call:. More... | |
class | instigate::scripting::generic::conversion< T, U >::big |
class | instigate::scripting::generic::conversion< T, T > |
struct | instigate::scripting::generic::int_to_type< t > |
generates distinct type for each integer. Here is an example where it may help us: More... | |
Namespaces | |
namespace | instigate::scripting::generic |
This namespace provides utilities for compile time checking. | |
Defines | |
#define | CHECK(R) {R();} |
Call default constructor of the passed argument. | |
#define | CHECK_CONVERTIBILITY(T, U) |
Check whether the types T and U are convertible to each other. | |
#define | CHECK_SAME_TYPE(T, U) |
Check whether the types T and U are the same types. |
Definition of compile time checking utilities.
#define CHECK | ( | R | ) | {R();} |
Call default constructor of the passed argument.
In most cases it is the object of the requirements class for any concept/type.
#define CHECK_CONVERTIBILITY | ( | T, | |||
U | ) |
{\ instigate::scripting::generic::require<instigate::scripting::\ generic::conversion<T, U>::exists>();}
Check whether the types T and U are convertible to each other.
Check is there an implicit conversion from T to U.
#define CHECK_SAME_TYPE | ( | T, | |||
U | ) |
{\ instigate::scripting::generic::require<instigate::scripting::\ generic::conversion<T, U>::same_type>();}
Check whether the types T and U are the same types.