#include <iostream>
template<typename... Args>
void print(Args const&... args)
{
(std::cout << ... << args);
}
int main()
{
std::cout << 1 << 2 << 3 << std::endl; // ok
print(1, 2, 3); // ok
print(1, 2, 3, std::endl); // error! How to make it work?
}
请参见在线演示
如何将函数模板作为模板参数传递?
print(1, 2, 3, std::endl<char, std::char_traits<char>>)
,代码就可以运行。但是您可能想要一个不需要编写所有额外内容的方法。 - mediocrevegetable1'\n'
(而不是std::endl
)。 - Scheff's Cat\n
和print(1, 2, 3, '\n');
,除非你绝对必须刷新流。 - Ted Lyngmo