如果我有一个可以为所有类型定义的函数模板Stream
,例如
template<typename Stream>
Stream& foo(Stream& stream)
{
return stream;
}
将类型限制为具体类有什么好处,例如
template<typename CharT, Traits>
std::basic_istream<CharT, Traits>& foo(std::basic_istream<CharT, Traits>& stream)
{
return stream;
}
或者作为经验法则,函数/类模板是否应该尽可能通用,即使您有特定的类型?