Instigate Open Source Documentation

src/generic/base.hpp File Reference

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.

Detailed Description

Definition of compile time checking utilities.


Define Documentation

#define CHECK (  )     {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,
 ) 
Value:
{\
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,
 ) 
Value:
{\
instigate::scripting::generic::require<instigate::scripting::\
        generic::conversion<T, U>::same_type>();}

Check whether the types T and U are the same types.



© Instigate CJSC, Open Source