c++ - 为什么使用 `declval` 定义`is_destructible`().~U()` 而不是 `declval ().~U()`?
问题描述
解决方案
所以我通过电子邮件询问了 Daniel Krügler,他允许我发表他的回答:
好问题 - 尽管答案相当微不足道,并且没有透露任何语言秘密:我知道
std::declval<T>()
在讨论的上下文中会返回一个右值引用(因此是一个右值),但在我的脑海中,我想表达translatep->~T()
,根据语言再次对应于(*p).~T()
([expr.ref]),因此逻辑结果是更改std::declval()
调用以生成T
析构函数应用到的左值。我很确定我不相信直接
declval()
返回T
,这个辅助函数在我的脑海中烙印得太深了;-)
推荐阅读
- php - 如何将 JSON 嵌套数组循环到表列表中
- excel - Excel:过滤掉表/简码中的特定值
- cs-cart - 是否有任何选项可以将 cscart 主题布局更改为自定义设计
- kubernetes - 随着负载的增加,kops 集群中的工作节点进入未就绪状态
- linux - Linux 'perf' instruction counter always returns 0
- wordpress - What is causing PHP Intelephense v1.7.1 to display Undefined function?
- salesforce - Can the constructors be inherited in Salesforce Apex
- python - I'm getting an EOF error while running my code
- java - Java Spring SQLIntegrityConstraintViolationException - Duplicate entry for key
- python - Get the time of the next DST change in python