Go to the documentation of this file.
552 template<
class Base,
class Obj>
562 static yes& test(Base*);
563 static no& test(...);
583 static const bool value =
sizeof(test(
static_cast<Obj*
>(0))) ==
sizeof(yes)
584 &&
sizeof(test(
static_cast<void*
>(0))) ==
sizeof(no);
654 template <
class Base,
class Obj>
686 template <
class Base,
class Obj>
711 template <
class T1,
class T2>
741 template <
class T1,
class T2>
779 template <
class T1,
class T2>
821 template <
bool value>
845 template <
bool value>
870 template <
class Base,
class Obj,
class Ret,
class Arg1,
class Arg2>
872 Ret (Base::*func)(Arg1, Arg2),
876 return (obj.*func)(arg1, arg2);
892 template <
class Base,
class Obj,
class Ret,
class Arg1,
class Arg2>
894 Ret (Base::*)(Arg1, Arg2),
916 template <
class Base,
class Obj,
class Ret,
class Arg>
918 Ret (Base::*func)(Arg),
921 return (obj.*func)(arg);
937 template <
class Base,
class Obj,
class Ret,
class Arg>
959 template <
class Base,
class Obj,
class Ret>
963 return (obj.*func)();
979 template <
class Base,
class Obj,
class Ret>
1000 template <
class Base,
class Obj,
class Arg1,
class Arg2>
1002 void (Base::*func)(Arg1, Arg2),
1006 (obj.*func)(arg1, arg2);
1019 template <
class Base,
class Obj,
class Arg1,
class Arg2>
1021 void (Base::*)(Arg1, Arg2),
1040 template <
class Base,
class Obj,
class Arg>
1042 void (Base::*func)(Arg),
1058 template <
class Base,
class Obj,
class Arg>
1060 void (Base::*)(Arg),
1076 template <
class Base,
class Obj>
1078 void (Base::*func)(),
1093 template <
class Base,
class Obj>
1115 template <
class Base,
class Obj,
class Ret,
class Arg1,
class Arg2>
1117 Ret (Base::*func)(Arg1, Arg2)
const,
1121 return (obj.*func)(arg1, arg2);
1137 template <
class Base,
class Obj,
class Ret,
class Arg1,
class Arg2>
1139 Ret (Base::*)(Arg1, Arg2)
const,
1161 template <
class Base,
class Obj,
class Ret,
class Arg>
1163 Ret (Base::*func)(Arg)
const,
1166 return (obj.*func)(arg);
1182 template <
class Base,
class Obj,
class Ret,
class Arg>
1184 Ret (Base::*)(Arg)
const,
1203 template <
class Base,
class Obj,
class Ret>
1205 Ret (Base::*func)()
const,
1207 return (obj.*func)();
1223 template <
class Base,
class Obj,
class Ret>
1225 Ret (Base::*)()
const,
1244 template <
class Base,
class Obj,
class Arg1,
class Arg2>
1246 void (Base::*func)(Arg1, Arg2)
const,
1250 (obj.*func)(arg1, arg2);
1263 template <
class Base,
class Obj,
class Arg1,
class Arg2>
1265 void (Base::*)(Arg1, Arg2)
const,
1284 template <
class Base,
class Obj,
class Arg>
1286 void (Base::*func)(Arg)
const,
1302 template <
class Base,
class Obj,
class Arg>
1304 void (Base::*)(Arg)
const,
1320 template <
class Base,
class Obj>
1322 void (Base::*func)()
const,
1337 template <
class Base,
class Obj>
1339 void (Base::*)()
const,
1361 template <
class Base,
class Obj,
class Ret,
class Arg1,
class Arg2>
1363 Ret (*func)(Base*, Arg1, Arg2),
1367 return func(&obj, arg1, arg2);
1384 template <
class Base,
class Obj,
class Ret,
class Arg1,
class Arg2>
1386 Ret (*)(Base*, Arg1, Arg2),
1410 template <
class Base,
class Obj,
class Ret,
class Arg>
1412 Ret (*func)(Base*, Arg),
1415 return func(&obj, arg);
1432 template <
class Base,
class Obj,
class Ret,
class Arg>
1434 Ret (*)(Base*, Arg),
1455 template <
class Base,
class Obj,
class Ret>
1476 template <
class Base,
class Obj,
class Ret>
1499 template <
class Base,
class Obj,
class Arg1,
class Arg2>
1501 void (*func)(Base*, Arg1, Arg2),
1505 func(&obj, arg1, arg2);
1519 template <
class Base,
class Obj,
class Arg1,
class Arg2>
1521 void (*)(Base*, Arg1, Arg2),
1542 template <
class Base,
class Obj,
class Arg>
1544 void (*func)(Base*, Arg),
1561 template <
class Base,
class Obj,
class Arg>
1563 void (*)(Base*, Arg),
1581 template <
class Base,
class Obj>
1583 void (*func)(Base*),
1599 template <
class Base,
class Obj>
Struct for automatic typing of parameter arguments for template functions.
Definition: param.h:79
void assert_same_type(const T1 &t1, const T2 &t2)
Definition: do_if.h:712
Definition: application.h:45
void * T
Definition: do_if.h:826
Class for removing a const qualifier.
Definition: do_if.h:616
Class for compile time assertion that a statement is true.
Definition: do_if.h:601
void assert_related_types(const T1 &t1, const T2 &t2)
Definition: do_if.h:780
void assert_not_const(T &t)
Definition: do_if.h:802
Ret fun(Obj &obj, Ret(*func)(Base *, Arg1, Arg2), typename Cgu::Param< Arg1 >::ParamType arg1, typename Cgu::Param< Arg2 >::ParamType arg2, typename SucceedOnTrue< RelatedTest< Base, Obj >::value >::T t=0)
Definition: do_if.h:1362
T Type
Definition: do_if.h:622
T Type
Definition: do_if.h:617
Ret mem_fun(Obj &obj, Ret(Base::*func)(Arg1, Arg2), typename Cgu::Param< Arg1 >::ParamType arg1, typename Cgu::Param< Arg2 >::ParamType arg2, typename SucceedOnTrue< RelatedTest< Base, Obj >::value >::T t=0)
Definition: do_if.h:871
Struct which provides a type 'T' (typedef'ed to void*) if its template parameter is true.
Definition: do_if.h:822
void * T
Definition: do_if.h:850
Struct which provides a type 'T' (typedef'ed to void*) if its template parameter is false.
Definition: do_if.h:846
void assert_related_to_type(const Base &b, const Obj &o)
Definition: do_if.h:655