All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Classes | Namespaces | Macros
TypeList.h File Reference

Header file for a type list implementation. More...

#include <blaze/util/NullType.h>
#include <blaze/util/Types.h>

Go to the source code of this file.

Classes

struct  blaze::TypeList< H, T >
 Implementation of a type list.The TypeList class is an implementation of a type list according to the example of Andrei Alexandrescu. The type list merely consists of the two data types Head and Tail. In order to create type lists of more data types, the TypeList class is used recursively: More...
 
struct  Length< TList >
 
struct  TypeAt< TList, Index >
 
struct  Contains< TList, Type >
 
struct  ContainsRelated< TList, Type >
 
struct  IndexOf< TList, Type >
 
struct  Append< TList, Type >
 

Namespaces

namespace  blaze
 Namespace of the Blaze C++ math library.
 

Macros

#define BLAZE_TYPELIST_1(T1)   TypeList< T1, NullType >
 Type list generation macro.This macro creates a type list only consisting of the type T1. The terminating type for the type list is the NullType. The following example demonstrates the use of this macro:
 
#define BLAZE_TYPELIST_2(T1, T2)   TypeList< T1, BLAZE_TYPELIST_1( T2 ) >
 Type list generation macro.This macro creates a type list consisting of the two types T1 and T2. The terminating type for the type list is the NullType. The following example demonstrates the use of this macro:
 
#define BLAZE_TYPELIST_3(T1, T2, T3)   TypeList< T1, BLAZE_TYPELIST_2( T2, T3 ) >
 Type list generation macro.This macro creates a type list consisting of the three types T1, T2 and T3. The terminating type for the type list is the NullType. The following example demonstrates the use of this macro:
 
#define BLAZE_TYPELIST_4(T1, T2, T3, T4)   TypeList< T1, BLAZE_TYPELIST_3( T2, T3, T4 ) >
 Type list generation macro.This macro creates a type list consisting of the four types T1, T2, T3 and T4. The terminating type for the type list is the NullType. The following example demonstrates the use of this macro:
 
#define BLAZE_TYPELIST_5(T1, T2, T3, T4, T5)   TypeList< T1, BLAZE_TYPELIST_4( T2, T3, T4, T5 ) >
 Type list generation macro.This macro creates a type list consisting of the five types T1, T2, T3, T4 and T5. The terminating type for the type list is the NullType. The following example demonstrates the use of this macro:
 
#define BLAZE_TYPELIST_6(T1, T2, T3, T4, T5, T6)   TypeList< T1, BLAZE_TYPELIST_5( T2, T3, T4, T5, T6 ) >
 Type list generation macro.This macro creates a type list consisting of the six types T1, T2, T3, T4, T5 and T6. The terminating type for the type list is the NullType. The following example demonstrates the use of this macro:
 
#define BLAZE_TYPELIST_7(T1, T2, T3, T4, T5, T6, T7)   TypeList< T1, BLAZE_TYPELIST_6( T2, T3, T4, T5, T6, T7 ) >
 Type list generation macro.This macro creates a type list consisting of the seven types T1, T2, T3, T4, T5, T6 and T7. The terminating type for the type list is the NullType. The following example demonstrates the use of this macro:
 
#define BLAZE_TYPELIST_8(T1, T2, T3, T4, T5, T6, T7, T8)   TypeList< T1, BLAZE_TYPELIST_7( T2, T3, T4, T5, T6, T7, T8 ) >
 Type list generation macro.This macro creates a type list consisting of the eight types T1, T2, T3, T4, T5, T6, T7 and T8. The terminating type for the type list is the NullType. The following example demonstrates the use of this macro:
 
#define BLAZE_TYPELIST_9(T1, T2, T3, T4, T5, T6, T7, T8, T9)   TypeList< T1, BLAZE_TYPELIST_8( T2, T3, T4, T5, T6, T7, T8, T9 ) >
 Type list generation macro.This macro creates a type list consisting of the nine types T1, T2, T3, T4, T5, T6, T7, T8 and T9. The terminating type for the type list is the NullType. The following example demonstrates the use of this macro:
 
#define BLAZE_TYPELIST_10(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)   TypeList< T1, BLAZE_TYPELIST_9( T2, T3, T4, T5, T6, T7, T8, T9, T10 ) >
 Type list generation macro.This macro creates a type list consisting of the ten types T1, T2, T3, T4, T5, T6, T7, T8, T9 and T10. The terminating type for the type list is the NullType. The following example demonstrates the use of this macro:
 

Detailed Description

Header file for a type list implementation.

Copyright (C) 2011 Klaus Iglberger - All Rights Reserved

This file is part of the Blaze library. This library is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version.

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with a special exception for linking and compiling against the Blaze library, the so-called "runtime exception"; see the file COPYING. If not, see http://www.gnu.org/licenses/.