int i; decltype(i++) var; 这里i++返回的是右值还是将亡值呢?怎么理解?

ooolinux 2019-02-24 08:38:54
int i; decltype(i++) var; 这里i++返回的是右值还是将亡值呢?怎么理解?
...全文
621 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
ooolinux 2020-05-14
  • 打赏
  • 举报
回复
引用 21 楼 dreamyt 的回复:
[quote=引用 20 楼 ooolinux 的回复:] [quote=引用 19 楼 dreamyt的回复:][quote=引用 16 楼 ooolinux 的回复:] [quote=引用 15 楼 早打大打打核战争 的回复:] 肯定是右值啊,xvalue是glvalue是lvalue,++i是lvalue,i++是prvalue是rvalue
glvalue是啥?[/quotegeneralized left value[/quote] Ok字数字数[/quote]应该能帮助理解[/quote] 这些知识点我现在已经忘了。
dreamyt 2020-05-14
  • 打赏
  • 举报
回复
引用 20 楼 ooolinux 的回复:
[quote=引用 19 楼 dreamyt的回复:][quote=引用 16 楼 ooolinux 的回复:] [quote=引用 15 楼 早打大打打核战争 的回复:] 肯定是右值啊,xvalue是glvalue是lvalue,++i是lvalue,i++是prvalue是rvalue
glvalue是啥?[/quotegeneralized left value[/quote] Ok字数字数[/quote]应该能帮助理解
ooolinux 2020-05-12
  • 打赏
  • 举报
回复
引用 19 楼 dreamyt的回复:
[quote=引用 16 楼 ooolinux 的回复:] [quote=引用 15 楼 早打大打打核战争 的回复:] 肯定是右值啊,xvalue是glvalue是lvalue,++i是lvalue,i++是prvalue是rvalue
glvalue是啥?[/quotegeneralized left value[/quote] Ok字数字数
dreamyt 2020-05-12
  • 打赏
  • 举报
回复
引用 16 楼 ooolinux 的回复:
[quote=引用 15 楼 早打大打打核战争 的回复:] 肯定是右值啊,xvalue是glvalue是lvalue,++i是lvalue,i++是prvalue是rvalue
glvalue是啥?[/quotegeneralized left value
芦苇叶子 2019-02-26
  • 打赏
  • 举报
回复
引用 6 楼 taodm的回复:
这是把编程学成八股文?你在什么场合需要这样的语法细节?
这可是新标准里很重要的概念,对程序优化很重要
weixin_44693965 2019-02-26
  • 打赏
  • 举报
回复
++i 是先加再使用i,i++是先使用i,再++
  • 打赏
  • 举报
回复
generalized lvalue
ooolinux 2019-02-26
  • 打赏
  • 举报
回复
引用 15 楼 早打大打打核战争 的回复:
肯定是右值啊,xvalue是glvalue是lvalue,++i是lvalue,i++是prvalue是rvalue


glvalue是啥?
  • 打赏
  • 举报
回复
肯定是右值啊,xvalue是glvalue是lvalue,++i是lvalue,i++是prvalue是rvalue
AlbertS 2019-02-26
  • 打赏
  • 举报
回复
引用 13 楼 yeweiokok 的回复:
[quote=引用 6 楼 taodm的回复:]这是把编程学成八股文?你在什么场合需要这样的语法细节?

这可是新标准里很重要的概念,对程序优化很重要[/quote]
ooolinux 2019-02-25
  • 打赏
  • 举报
回复
引用 11 楼 sdghchj 的回复:
将亡值就是右值,右值概念范围包含了将亡值


OK
sdghchj 2019-02-25
  • 打赏
  • 举报
回复
将亡值就是右值,右值概念范围包含了将亡值
ooolinux 2019-02-24
  • 打赏
  • 举报
回复
引用 3 楼 真相重于对错的回复:
右值 返回 int
i++不是返回一个临时值吗,为什么是右值呢?
真相重于对错 2019-02-24
  • 打赏
  • 举报
回复
右值 返回 int
ooolinux 2019-02-24
  • 打赏
  • 举报
回复
我是问i++的类型,它会决定decltype推导出的类型。
yshuise 2019-02-24
  • 打赏
  • 举报
回复
这个只是返回类型,不是什么右值
ooolinux 2019-02-24
  • 打赏
  • 举报
回复
引用 7 楼 yshuise 的回复:
是右值
你说的将忘值也是右值
一切没有地址的值也是右值


真正的好书是:Effective Modern C++ 简体中文版 - 42招独家技巧助您改善C++11和C++14的高效用法
详细讲了你想要的。
书中有个地方有错,不过看得出的。


ok,有机会再看。
ooolinux 2019-02-24
  • 打赏
  • 举报
回复
引用 6 楼 taodm 的回复:
这是把编程学成八股文?你在什么场合需要这样的语法细节?


书里看到,想理解而已,自己用不到的。
ooolinux 2019-02-24
  • 打赏
  • 举报
回复
引用 5 楼 WNs_ACE 的回复:
我觉得是纯右值,在《深入理解C++11》这本书中讲到了一个点,表达式出来的临时变量是属于纯右值,而将亡值是那种被移动的右值。而decltype应该是没有实现移动的,所以我觉得应该是纯右值。


应该没错了,我在看这本书,看到decltype,前面的有的概念就有点模糊了,刚刚回头翻了下书就明白了。
yshuise 2019-02-24
  • 打赏
  • 举报
回复
是右值 你说的将忘值也是右值 一切没有地址的值也是右值 真正的好书是:Effective Modern C++ 简体中文版 - 42招独家技巧助您改善C++11和C++14的高效用法 详细讲了你想要的。 书中有个地方有错,不过看得出的。
加载更多回复(2)

64,648

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧