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

unk*_*ulu 5 c++ templates

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

template<class T>
T DecayType(T);

template<class T>
struct decay {
    using type = decltype(DecayType(declval<T>()));
};
Run Code Online (Sandbox Code Playgroud)

我问,因为我遇到的所有内容都使用了一些模板分支来仔细操作类型,而这似乎只是按照定义行事.

Pot*_*ter 6

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

不过,这是关于做什么的要点std::decay.