Torque 3D 3.8
ContentsIndexHome
PreviousUpNext
engineTypes.h

Copyright (c) 2012 GarageGames, LLC 

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Name 
Description 
This is macro _DECLARE_BITFIELD. 
This is macro _DECLARE_BITFIELD_R. 
This is macro _DECLARE_ENUM. 
This is macro _DECLARE_ENUM_R. 
Unlike the other types, primitives directly specialize on EngineTypeTraits instead of _EngineTypeTraits so as to prevent any stripping from taking place. Otherwise, pointers could not be primitive types. 
This is macro _DECLARE_PRIMITIVE_R. 
This is macro _DECLARE_STRUCT. 
This is macro _DECLARE_STRUCT_R. 
This is macro _DECLARE_TYPE. 
This is macro _DECLARE_TYPE_R. 
This is macro _END_IMPLEMENT_BITFIELD. 
This is macro _END_IMPLEMENT_ENUM. 
This is macro _END_IMPLEMENT_STRUCT. 
This is macro _ENGINETYPES_H_. 
This is macro _IMPLEMENT_BITFIELD. 
This is macro _IMPLEMENT_ENUM. 
This is macro _IMPLEMENT_PRIMITIVE. 
This is macro _IMPLEMENT_STRUCT. 
This is macro _IMPLEMENT_TYPE. 
 
 
 
 
 
 
 
 
 
 
 
 
Artificial offset to avoid compiler warnings. 
Artificial offset to avoid compiler warnings. 
Artificial offset to avoid compiler warnings. 
 
 
 
 
 
T 
Temporary helper. Used to strip the return or argument types supplied in a function type down to the value type and thus account for the discrepancy between (argument/return) value types and engine types. Don't go for the base type as VC will not allow us to use abstract types even in return or argument positions of abstract function types (GCC allows it; not sure what the stance of the ANSI C++ standard towards this is). Also, while it may be tempting to go for the real return and argument value types here, this would lead to errors as these are... more 
Name 
Description 
Helpers. 
 
Name 
Description 
 
This is record _EngineArgumentTypeTable. 
 
This is class _EngineBitfieldTypeTraits. 
 
This is class _EngineEnumTypeTraits. 
 
This is class _EngineFunctionTypeTraits. 
 
Base type trait definitions for different type kinds. 
 
This is class _EngineStructTypeTraits. 
 
@name Engine Type Traits
Type traits allow to access the static properties of a type at compile-time. This is primarily useful for templating in order to make decisions based on static typing. 
 
This is record _EngineTypeTraits< R( ... ) >. 
 
This is record _EngineTypeTraits< R( A ) >. 
 
This is record _EngineTypeTraits< R( A, ... ) >. 
 
This is record _EngineTypeTraits< R( A, B ) >. 
 
This is record _EngineTypeTraits< R( A, B, ... ) >. 
 
This is record _EngineTypeTraits< R( A, B, C ) >. 
 
This is record _EngineTypeTraits< R( A, B, C, ... ) >. 
 
This is record _EngineTypeTraits< R( A, B, C, D ) >. 
 
This is record _EngineTypeTraits< R( A, B, C, D, ... ) >. 
 
This is record _EngineTypeTraits< R( A, B, C, D, E ) >. 
 
This is record _EngineTypeTraits< R( A, B, C, D, E, ... ) >. 
 
This is record _EngineTypeTraits< R( A, B, C, D, E, F ) >. 
 
This is record _EngineTypeTraits< R( A, B, C, D, E, F, ... ) >. 
 
This is record _EngineTypeTraits< R( A, B, C, D, E, F, G ) >. 
 
This is record _EngineTypeTraits< R( A, B, C, D, E, F, G, ... ) >. 
 
This is record _EngineTypeTraits< R( A, B, C, D, E, F, G, H ) >. 
 
This is record _EngineTypeTraits< R( A, B, C, D, E, F, G, H, ... ) >. 
 
This is record _EngineTypeTraits< R( A, B, C, D, E, F, G, H, I ) >. 
 
This is record _EngineTypeTraits< R( A, B, C, D, E, F, G, H, I, ... ) >. 
 
This is record _EngineTypeTraits< R( A, B, C, D, E, F, G, H, I, J ) >. 
 
This is record _EngineTypeTraits< R( A, B, C, D, E, F, G, H, I, J, ... ) >. 
 
This is record _EngineTypeTraits< R( A, B, C, D, E, F, G, H, I, J, K ) >. 
 
This is record _EngineTypeTraits< R( A, B, C, D, E, F, G, H, I, J, K, ... ) >. 
 
This is record _EngineTypeTraits< R( A, B, C, D, E, F, G, H, I, J, K, L ) >. 
 
This is record _EngineTypeTraits< R( A, B, C, D, E, F, G, H, I, J, K, L, ... ) >. 
 
This is record _EngineTypeTraits< R() >. 
 
This is class _EngineTypeTraits< void >. 
 
 
 
Helper to retrieve a scope instance through a C++ type. The setup here is a little contrived to allow the scope parameters to the various macros to be empty. What makes this difficult is that T need not necessarily be a structured type. 
 
This is record EngineTypeTraits. 
 
This is record EngineTypeTraits< const T >. 
 
This is record EngineTypeTraits< const T& >. 
 
This is record EngineTypeTraits< const T* >. 
 
This is record EngineTypeTraits< T& >. 
 
Strip off native type modifiers. Doing it like this allows to query type traits on types that are not true engine types or value types thereof (like e.g. a reference to a primitive type) but it simplifies matters for us. 
Name 
Description 
This is variable _EngineBitfieldTypeTraits< T >::TYPEINFO. 
This is variable _EngineEnumTypeTraits< T >::TYPEINFO. 
This is variable _EngineFunctionTypeTraits< T >::TYPEINFO. 
This is variable _EnginePrimitiveTypeTraits< T >::TYPEINFO. 
This is variable _EngineStructTypeTraits< T >::TYPEINFO. 
This is variable _EngineTypeTraits< T >::TYPEINFO. 
Copyright (c) 2015. All rights reserved.
What do you think about this topic? Send feedback!