学习c++模板元编程2

 今天看了下模板元编程在编译期确定变量类型的简单例子和模板的条件状态的用法如下所示:

#include <iostream> #include <string> #include <typeinfo> using namespace std; //动态确定类型 template<bool,typename T1,typename T2> struct Type { typedef T1 GType; }; template<typename T1, typename T2> struct Type<true,T1,T2> { typedef T2 GType; }; //模板设置条件 template<bool> struct J; template<> struct J<false> { static inline void f() { cout<<"i am wrong."<<endl; } }; template<> struct J<true> { static inline void f() { cout<<"i am right."<<endl; } }; template<int N> struct F { static inline void f() { cout<<N<<endl; F<N-1>::f(); } }; template<> struct F<0> { static inline void f() { } }; int main() { Type<1==1,int,string>::GType i; i = "sting"; cout<<i<<endl; J<true>::f(); F<10>::f(); system("PAUSE"); return 1; }

你可能感兴趣的:(编程,C++,String,struct,System)