【发布时间】:2016-12-08 09:24:12
【问题描述】:
我有一个类代表一个数组引用 (class array_ref) 和另一个 是(即持有/拥有/包含)数组 (class array)。
array_ref 的行为类似于引用。
将std::decay 特化为class array_ref 为array 是否有意义?
namespace std{
template<> class decay<arra_ref>{typedef array type;};
}
我还需要告诉泛型程序array 是array_ref 的“值类型”吗?
std::decay 是否用于任何 STL 算法?
【问题讨论】:
-
没有。 Decay 是 C 数组和函数的一个非常特殊的怪癖。
auto foo = obj预计将数组和函数衰减为指针和函数指针。你不能用你的array_ref类型重现它。
标签: c++ c++11 template-specialization c++-standard-library