c++11中的可变参数模板
2014-10-15 16:03
183 查看
记录一下怕忘记!
#include <iostream>
class MyClass
{
public:
static void fun()
{
std::cout << "hello world!" << std::endl;
}
};
template<class T0, class... T>
struct Class;
template<class T0>
class Class<T0>
{
public:
void runInit()
{
T0::fun();
}
};
template<class T0, class T1, class... T>
class Class<T0, T1, T...> : public Class<T0, T...>
{
public:
void runInit()
{
T1::fun();
}
};
template<class T0, class T1, class T2, class... T>
class Class<T0, T1, T2, T...> : public Class<T0, T1, T...>
{
public:
void runInit()
{
T2::fun();
}
};
int main()
{
Class<MyClass, MyClass, MyClass> c;
c.runInit();
return 0;
}
vistual studio 2013中编译通过
结果如下:
hello world!
#include <iostream>
class MyClass
{
public:
static void fun()
{
std::cout << "hello world!" << std::endl;
}
};
template<class T0, class... T>
struct Class;
template<class T0>
class Class<T0>
{
public:
void runInit()
{
T0::fun();
}
};
template<class T0, class T1, class... T>
class Class<T0, T1, T...> : public Class<T0, T...>
{
public:
void runInit()
{
T1::fun();
}
};
template<class T0, class T1, class T2, class... T>
class Class<T0, T1, T2, T...> : public Class<T0, T1, T...>
{
public:
void runInit()
{
T2::fun();
}
};
int main()
{
Class<MyClass, MyClass, MyClass> c;
c.runInit();
return 0;
}
vistual studio 2013中编译通过
结果如下:
hello world!
相关文章推荐
- C++11标准新增可变参数模板(variadic template)
- 使用C++11的可变参数模板改造单例模式
- C++11新特性:可变参数模板
- C++11标准之variadic template (可变参数模板)
- c++11——可变参数模板
- C++11标准新增可变参数模板(variadic template)
- C++11 可变参数模板
- c++11 可变参数模板函数
- c++11 之可变参数模板
- c++11 可变参数模板
- C++11:可变参数模板实现print输出参数
- C++11 可变参数模板
- c++11可变参数模板
- C++11 : variadic templates(可变参数模板)
- C++11 可变参数模板
- C++11新特性之五——可变参数模板
- C++11之经典书籍和网文推荐(持续更新资源下载链接)
- C++11中的匿名函数(lambda函数,lambda表达式)
- C++11新特性之auto
- [c++11]hash<T>哈希结构模板