C_and_CPP 板


LINE

http://www.modernescpp.com/index.php/c-core-guidelines-programming-at-compile-time-with-constexpr https://bit.ly/2TwXrG9 看完这篇有几个观念想讨论~ 1. 他提到 constexpr function预设是inline, 意思是说假设用在runtime的情境下 会"建议" compiler用inline的方式对吧? 这边衍伸一个问题是 https://stackoverflow.com/a/4193698 为什麽inline function写在header 不会有redefine的error, 而一般函数却会? 两个应该都是external linkage, 为什麽一个会用ODR去解释一个就是redefine? ODR我经验上是 有两个class同名 member function又刚好都呼叫同一个名字的 compiler只会link一个 然後就会莫名的只走一个版本的class实作 但为什麽inline跟non-static function会用两个方式去解释呢? 2. 我是否能够把每一个function (看起来可能是可以compile time算出来的function) 无脑加上constexpr (反正若用在需要compile time知道常数值的时候compiler会报错 再修就好)? 若可以这样无脑加上去 是不是有可能让程式变快? 这边也有个问题是, 网站例子 constexpr int i = gcd(11,121); 是否gcd函数没加上constepxr的话, compiler就"不允许" 在compile time做计算优化 或是说 int i = gcd(11,121); 两个都不加上constexpr, 是不是完全都不会再compile time做优化? 如果答案是 都会优化的话 是否代表 constexpr 只是给reader明确读code的时候 可以清楚知道这件事? (当然要把这函数用在template那种compile time要知道数值的情况是一定要加的) 3. 既然constexpr有牵扯到compiler optimization, 是否变成就算用A compiler可以 编译过, 拿到B compiler很可能无法编译? 造成不可携 谢谢 --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 110.28.160.102
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1549422850.A.2CA.html
1F:推 firejox: 2. 加constexpr 就只是“希望”能不能在compile time做 02/06 16:58
2F:→ firejox: 优化,但compiler 会不会听到请求则是另一回事 02/06 16:58
3F:→ firejox: 但不加compiler 一样可以帮忙做优化 02/06 17:00
4F:推 firejox: 3. 优化是compiler生有效率的machine code的事,跟可携 02/06 17:05
5F:→ firejox: 没关系 02/06 17:05
6F:推 Feis: 我觉得这问题蛮有趣的,不是很容易回答得很清楚。 02/06 18:04
7F:推 poyenc: 这个要讨论的话也可以跟 consteval 还有 P1045 P0595 等一 02/06 22:08
8F:→ poyenc: 起比较 :) 02/06 22:08







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Boy-Girl站内搜寻

TOP