我正在尝试使用detector,我根据V编写了它来检查一个类型是否可分配。但是,std::declval<int>() = std::declval<int>()无效,只有std::declval<int&>() = std::declval<int>()是有效的。
这一切为什么要发生?
发布于 2018-07-06 06:19:41
看看std::declval的签名
template<class T>
typename std::add_rvalue_reference<T>::type declval() noexcept;std::declval<int>()具有int&&类型,即rvalue(xvalue)。不能将rvalue分配给int。
https://stackoverflow.com/questions/51203605
复制相似问题