首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么std::declval<int>() = std::declval<int>()无效?

为什么std::declval<int>() = std::declval<int>()无效?
EN

Stack Overflow用户
提问于 2018-07-06 05:36:13
回答 1查看 269关注 0票数 3

我正在尝试使用detector,我根据V编写了它来检查一个类型是否可分配。但是,std::declval<int>() = std::declval<int>()无效,只有std::declval<int&>() = std::declval<int>()是有效的。

这一切为什么要发生?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-06 06:19:41

看看std::declval的签名

代码语言:javascript
复制
template<class T>
typename std::add_rvalue_reference<T>::type declval() noexcept;

std::declval<int>()具有int&&类型,即rvalue(xvalue)。不能将rvalue分配给int

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51203605

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档