打印模板的值

时间:2016-12-22 17:51:29

标签: c++ templates

所以,我只想提出这个问题:

template<typename T>
void printWithEndl(T)
{
    std::cout << T << "\n";
}

但我收到了这个错误:

std::cout << T << "\n";

我怎么能知道T的值。

提前致谢。

1 个答案:

答案 0 :(得分:7)

您应该将您传递给printWithEndl的变量命名为cout,并命名:

template<typename T>
void printWithEndl(T t)
{
    std::cout << t << "\n";
}

如果您正在使用它来打印复杂的对象,那么您最好关闭passing a reference to const

template<typename T>
void printWithEndl(const T& t)
{
    std::cout << t << "\n";
}