cube_ptrs< glue_type, GlueCube< T1, T2, glue_type > > Struct Template Reference
[Glue_cube_metaprog]

#include <glue_cube_metaprog.hpp>

List of all members.

Public Types

typedef T1::elem_type elem_type

Static Public Member Functions

static void get_ptrs (const Cube< elem_type > **in_ptrs, bool *del, const GlueCube< T1, T2, glue_type > &X)

Static Public Attributes

static const u32 num = 1 + cube_ptrs<glue_type, T1>::num

Detailed Description

template<typename glue_type, typename T1, typename T2>
struct cube_ptrs< glue_type, GlueCube< T1, T2, glue_type > >

Definition at line 87 of file glue_cube_metaprog.hpp.


Member Typedef Documentation

template<typename glue_type , typename T1 , typename T2 >
typedef T1::elem_type cube_ptrs< glue_type, GlueCube< T1, T2, glue_type > >::elem_type

Definition at line 89 of file glue_cube_metaprog.hpp.


Member Function Documentation

template<typename glue_type , typename T1 , typename T2 >
static void cube_ptrs< glue_type, GlueCube< T1, T2, glue_type > >::get_ptrs ( const Cube< elem_type > **  in_ptrs,
bool *  del,
const GlueCube< T1, T2, glue_type > &  X 
) [inline, static]

Definition at line 97 of file glue_cube_metaprog.hpp.

References GlueCube< T1, T2, glue_type >::A, GlueCube< T1, T2, glue_type >::B, cube_ptrs< glue_type, T1 >::get_ptrs(), and cube_ptrs< glue_type, T1 >::num.

00102     {
00103     isnt_same_type<typename T1::elem_type, typename T2::elem_type>::check();
00104     
00105     cube_ptrs<glue_type, T1>::get_ptrs(in_ptrs, del, X.A);
00106     
00107     in_ptrs[num]  = 
00108       (
00109       is_Cube<T2>::value ?
00110         reinterpret_cast<const Cube<elem_type>*>(&X.B)
00111       :
00112         new Cube<elem_type>(X.B)
00113       );
00114     
00115     del[num] = 
00116       (
00117       is_Cube<T2>::value ?
00118         false
00119       :
00120         true
00121       );
00122     }


Member Data Documentation

template<typename glue_type , typename T1 , typename T2 >
const u32 cube_ptrs< glue_type, GlueCube< T1, T2, glue_type > >::num = 1 + cube_ptrs<glue_type, T1>::num [static]

Definition at line 91 of file glue_cube_metaprog.hpp.