专门化std :: decay是否有意义?

时间:2016-12-07 23:14:43

标签: c++ c++11 template-specialization c++-standard-library

我有一个表示数组引用(class array_ref)的类,另一个表示 (即包含/拥有/包含)数组(class array)。 array_ref表现得像参考。

std::decay class array_ref专门化为array是否有意义?

namespace std{
template<> class decay<arra_ref>{typedef array type;};
}

我还有哪些其他选择可以告诉通用程序array是&#34;值类型&#34;是array_ref

在任何STL算法中都使用std::decay吗?

1 个答案:

答案 0 :(得分:3)

标准库算法是否使用它并不重要。重要的是标准在[meta.type.synop] / 1中的内容:

  

除非另有说明,否则为本子条款中定义的任何模板添加特殊化的程序的行为是未定义的。

包含在&#34;本条&#34;是所有类型特征类,包括decay。所以不要把它专门化。如初。