c++ - 这个 std::decay 的实现是正确的吗

标签 c++ templates

std::decay 的这个实现是否正确?

template<class T>
T DecayType(T);

template<class T>
struct decay {
    using type = decltype(DecayType(declval<T>()));
};

我问是因为我遇到的一切都使用一些模板分支来小心地操纵类型,而这似乎只是按照定义行事。

最佳答案

形成这样的函数调用需要按值传递,这需要复制/移动构造函数。该实现不够通用。

不过,这是 std::decay 的要点。

关于c++ - 这个 std::decay 的实现是正确的吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31566760/

相关文章:

AngularJS 使用指令编译 html 并以字符串形式输出?

c++ - 使用 void 指针从 c 函数调用模板化成员

c++ - Xcode 新手,不能使用 cout,只有 std::cout 有效

c++ - 一个普通的链表

c++ - 使用用户输入定义数组

c++ - 如何在 C++ 中的列表末尾推断出模板参数?

c++ - 跨不同 dll 的 typeid 结果

c++ - 将指针设置为空后通过指针访问函数

c++ - 如何创建要与 C++ 一起使用的离线数据库

C++类定义编译问题