作者hunandy14 (Charlott.HonG)
看板C_and_CPP
标题[问题] decltype(auto) 合并用法差异
时间Tue Apr 4 17:52:39 2017
想请问他们有什麽不一样吗
auto fun() -> decltype(auto){}
decltype(auto) fun(){}
然後有看到说不可以使用auto当作返回值,
实际测试一下编译是可以过的会有什麽後果吗?
测试代码,只是列举最简单情况
看不出差异,有什麽情况一定只能用哪个吗
代码:
http://ideone.com/nHiXmH
然後为什麽继承的时候,取一个别名没办法透过auto取得
代码:
http://ideone.com/616q7s
怎麽区别什麽时候不能用auto呢?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 36.238.116.36
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1491299563.A.656.html
1F:推 Sidney0503: 看effective modern c++有说 04/04 18:00
2F:→ Sidney0503: 简单说 auto 是一个"实体" decltype不一定 04/04 18:00
3F:→ Sidney0503: 如果是reference型态 decltype会判断成ref 04/04 18:01
4F:推 Sidney0503: 至於另一个问题stackoverflow.com/questions/11302981 04/04 18:08
5F:→ Sidney0503: 有两个方法判断 一是你对语法够熟 二是靠编译器警告 04/04 18:13
好的 感谢~
6F:推 loveflames: auto倒不是绝对不能做为返回值,只要你知道会产生什 04/04 20:10
7F:→ loveflames: 麽 04/04 20:10
8F:推 loveflames: 至於原文开头,两个是没什麽不同,後置式的写法主要是 04/04 20:12
9F:→ loveflames: 为了用在涉及参数列的推导 04/04 20:12
10F:推 loveflames: 至於第二个问题,这个规则以前还真没注意过 04/04 20:17
好的 感谢~
※ 编辑: hunandy14 (36.238.116.36), 04/05/2017 00:24:11