00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00025 #if !defined(TEMPLOG_TEMPL_META_H)
00026 #define TEMPLOG_TEMPL_META_H
00027
00028
00029 #include "config.h"
00030
00031
00032
00033 namespace templog {
00034
00035 namespace templ_meta {
00036
00040 struct nil {};
00041
00045 template< bool B_ >
00046 struct boolean {
00047 typedef boolean<B_> result_type;
00048 enum { result = B_ };
00049 };
00050
00054 template< int I_ >
00055 struct int2type { enum { result = I_ }; };
00056
00060 template< class Bool_, typename T1_, typename T2_ > struct if_;
00061 template< typename T1_, typename T2_ > struct if_<boolean<true >,T1_,T2_> {typedef T1_ result_type;};
00062 template< typename T1_, typename T2_ > struct if_<boolean<false>,T1_,T2_> {typedef T2_ result_type;};
00063
00064 }
00065
00066 }
00067
00068
00069
00070 #endif //defined(TEMPLOG_TEMPL_META_H)
00071
00072
00073