c++ - 传递 lvlaue 时,decltype 不会产生 lvlaue 引用
问题描述
在 C++ 入门和许多书籍中,当将decltype
类型说明符应用于 an 的表达式时,lvalue
推断的类型是左值引用,与右值引用相同。所以:
int i = 5; // non-cv qualified lvlaue
decltype (i) j; // i is an lvlaue between parenthesis so why the inferred type is not an lvlaue reference?
decltype ((i)) k; // error: reference not bound
在书中它说
decltye(i)
是一个左值参考,但我发现不是这样!而且我不知道为什么这会产生左值引用:
decltype (++i) l; // error: lvalue reference not bound decltyp(i++) m; // ok since post-incr/decr yield an rvlaue
解决方案
推荐阅读
- wordpress - WordPress Gutenberg 块类别未加载
- angular - Angular ag 网格在左侧显示“无数据”消息
- python - 如何选择独立于维度数量的第一项?
- sql - 包含许多产品的订单的 sql 数据模型
- python - 如何使用 python 从 pandas 数据框中获取特定值?
- angular - Uncaught (in promise): TypeError: myFunction is not a function
- python - 从字符串中删除 xml unicode 字符
- gitlab-ci - gitlab-ci - Gitl 克隆失败,gnutls_handshake() 失败:公钥签名验证失败
- docker - 使用外部 CI CD 提供程序时如何缓存基本 Docker 映像
- mysql - 在用于缩小 concat 结果的 GROUP CONCAT 子查询中找不到表别名