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.