【发布时间】:2018-07-02 07:50:36
【问题描述】:
我指的是这个答案:
https://stackoverflow.com/a/4447057/930315
我遇到了与引用问题的 OP 类似的问题, 有一个功能
template<typename T>
void func(T& val);
及其专业化
template<>
void func<mytype>(mytype& val);
导致重复符号链接器错误(这些方法在我的标题末尾包含的“.tpp”文件中实现)。
将inline 添加到专用函数解决了该问题。为什么?
【问题讨论】:
-
您追求的“原因”是什么?指出 C++ 标准所说的内容或理由?
-
.tpp。这是一种非常时髦的编程风格。为此提出了这个问题。您是否针对特定的 C++ 标准?目前模板的发展速度非常快。 -
嗯,这个想法是函数模板特化不再是模板 - 所有模板参数都是已知的,因此它像常规函数一样编译。我正在尝试查找相关的标准报价。
-
不要粗鲁,但我问了你一个“或”问题,你回答“是”。
-
@StoryTeller。对此感到抱歉——我想到了“基本原理”部分。
标签: c++ templates inline template-meta-programming template-specialization