26 #if ! defined (octave_lo_traits_h)
27 #define octave_lo_traits_h 1
29 #include "octave-config.h"
37 template <
bool cond,
typename T1,
typename T2>
40 template <
typename T1,
typename T2>
48 template <
typename T1,
typename T2>
57 template <
typename T1,
typename T2>
62 static const bool value =
false;
75 template <
template <
typename>
class Template,
typename T>
80 static const bool value =
false;
83 template <
template <
typename>
class Template,
typename T>
93 template <
typename T1>
99 typedef struct {
char c[2]; } two;
102 template <
typename T2>
static one is_class_type_test (
int T2::*);
105 template <
typename T2>
static two is_class_type_test (...);
109 enum {
yes =
sizeof (is_class_type_test<T1> (0)) == 1 };
116 template <
typename T>
127 template <
template <
typename>
class TemplatedClass,
typename T>
134 template <
template <
typename>
class TemplatedClass,
typename T>
144 template <
template <
typename>
class TemplatedClass,
typename T,
typename S>
151 template <
template <
typename>
class TemplatedClass,
typename T,
typename S>
155 typedef TemplatedClass<S>
type;
if_then_else< is_class_type< T >::no, T, T const & >::result type