C_and_CPP 板


LINE

看到constexpr,想稍微聊在metaprogramming的妙用 template的non-type参数不吃浮点数 (之前查好像之後某个版本会全面开放字面值,不太确定) 在数值计算上应用有限,而且语法艰涩 而constexpr函数吃浮点数,语法容易 大家对於constexpr的认识大多是这样 不过实际上可以拿来做non-constant constant expression 意思就是表面上看起来同一个函数,输入也相同,每次的输出却不一致 http://b.atch.se/posts/constexpr-counter/ 其中一种应用是counter --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 180.217.205.7
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1489337528.A.936.html
1F:推 ilikekotomi: 感谢分享 有空来仔细研究一下 03/13 00:57
TMP需要的前置知识,连这篇没提到的也说说好了 1.SFINAE 函数模板匹配失败後找优先权更低的函数或函数模板 2.ADL 根据argument找函数 3.friend name injection 在class内部放friend函数宣告,找到定义在其他class的friend函数 4.sizeof 算函数的返回大小,函数只有宣告即可 5.pointer-to-member operator 能判断是否class type 6.模板本体可不定义,只定义特化 7.CRTP 例如这样 class T:base<T>{}; 用途嘛....policy-based design之类 可能会再搭个多重继承 8.variadic template + 多重继承 光列出来可能不知道能干嘛,我讲typelist你就懂了 里面可以搭tuple跟fold expression(C++17)
2F:推 lovejomi: 请问第三点可否提供一些资源,想了解一下 03/13 11:25
直接给你一个范例 class U; struct T{ friend void f(U*){...} }; struct U{ friend void f(U*); }; 例如这样用 U* x; f(x); 以ADL来找f是否在U中 再以friend name injection让U可见void f(U*)
3F:推 ilikekotomi: 大大你人真好 连我TMP不熟料想到了XD 03/13 15:25
※ 编辑: loveflames (60.248.56.181), 03/13/2017 15:37:33
4F:→ ilikekotomi: reader的部分不懂 为何选择了return R来递回 03/13 16:33
5F:→ loveflames: 因adl_flag还没定义,adl_flag是在最後透过write定义 03/13 16:43
6F:→ ilikekotomi: 大概有概念 a的那次由write定义adl_flag(flag<1>) 03/13 17:06
7F:→ ilikekotomi: b遇到reader(0,flag<1>)会改走return N的 03/13 17:07
8F:→ ilikekotomi: 我用flag<3>自己人脑展开大概是这种感觉 03/13 17:09
9F:→ loveflames: 我忘了提一个noexcept 03/13 19:36
10F:→ loveflames: 可以用来判断constexpr是否能在编译期求出 03/13 19:45
11F:→ loveflames: 连constexpr函数是否定义都能判断 03/13 19:45
12F:→ LPH66: 其实我个人认为用 noexcept 问有没有这个 constexpr 03/13 19:52
13F:→ LPH66: 某种程度上算是那种非正常用法 XD 03/13 19:52
14F:→ LPH66: 嘛不过这连结里的东西都是这种非正常用法就是了 03/13 19:52
15F:推 lovejomi: 请问这范例跟tmp有什麽正相关吗?没有很懂 03/13 22:51
16F:→ loveflames: 这范例用到我列举的东西 03/13 23:26







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