您的位置:首页 > 编程语言 > C语言/C++

C++11: variadic template

2015-12-18 10:05 337 查看
#include <iostream>
#include <string>

template <typename T, typename... Args>
void foo(const T &t, const Args& ... rest)
{
std::cout << sizeof...(Args) << std::endl;
std::cout << sizeof...(rest) << std::endl;
}

template <typename T>
std::ostream &print(std::ostream &os, const T &t)
{
return os << t;
}

template <typename T, typename... Args>
std::ostream &print(std::ostream &os, const T &t, const Args&... rest)
{
os << t << " ";
return print(os, rest...);
}

int main()
{
int i = 0; double d = 3.14;
std::string s = "how row brown cow";
foo(i, s, 42, d);
foo(s, 42, "hi");
foo(d, s);
foo("hi");

print(std::cout, i, s, 42);
std::cout << "\n";

return 0;
}


// variadic template
// C++ Primer 5th(p.701)
// g++ xx.cpp -std=c++11
// gcc 4.9.2
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: