从 sth 对这个问题的回答开始:
我想知道如果将以下代码放入由不同 .cc 文件多次包含并链接在一起的头文件中,如何解决多个定义错误:
template <typename T>
class C {
static const int K;
static ostream& print(ostream& os, const T& t) { return os << t;}
};
// general case
template <typename T>
const int C<T>::K = 1;
// specialization
template <>
const int C<int>::K = 2;