Re: [闲聊] C++ Stateful Metaprogramming

楼主: CoNsTaR ((const *))   2017-09-23 04:05:43
原文恕删
文章被推太长很难回复单一推文
还有讨论的内容其实也和原文无关了,所以新开一串,保留所有推文
楼主: CoNsTaR ((const *))   2016-09-17 14:23:00
XDD
作者: LPH66 (-6.2598534e+18f)   2016-09-17 15:15:00
推一个, 不过我还满好奇这要怎么改...
作者: jimfan (jimfan)   2016-09-17 16:48:00
可能我差劲吧,觉得C++变得复杂到不行
作者: windows2k (程式宅 <囧>)   2016-09-17 18:44:00
不只C++啊..所有程式语言都越变越复杂, 需求越来越高C#8, Java9, PHP7..几十年前程式语言哪有版号的观念
作者: uranusjr (←這人是超級笨蛋)   2016-09-17 18:46:00
C++ 的问题一直都是太多东西大杂烩, 不是复杂是主题太多
作者: stucode   2016-09-17 19:46:00
C++ 威力强,可是涵盖层面广,难以驾驭精通。
作者: Lordaeron (Terry)   2016-09-17 21:21:00
加了这一堆东西,会比较强? 哪之前的人有什么写不出来?不明著没事找事.
作者: uranusjr (←這人是超級笨蛋)   2016-09-17 21:37:00
其实新东西大体上还是不错, 是旧包袱甩不掉旧的语法实在是太多雷再不改真的要被取代了
作者: Lordaeron (Terry)   2016-09-17 23:43:00
新的语法雷有比较少?
作者: holydc (のヮの)   2016-09-17 23:58:00
组语有什么东西写不出来?要高阶语言做什么
作者: xam (听说)   2016-09-18 00:26:00
我觉得难的 template 已经很复杂了,但C++11/14里那只是基本
作者: steve1012 (steve)   2016-09-18 00:38:00
更expressive 有啥不好 你可以选择不要用啊
作者: Ommm5566 (56天團)   2016-09-18 06:39:00
会比较强 c++11以来多了很多强力工具move semantics/auto/lambda/shared_ptr......程式码可以选择跑更快or比较好读or好维护不想用这些东西就写成c like阿 if+while+pointer+struct
作者: ronin728 (浪人)   2016-09-18 08:03:00
C++就是洪拳啊,虎形鹤形蛇形螳螂形南少林花拳全加一块
楼主: CoNsTaR ((const *))   2016-09-18 08:41:00
有这个东东可以用 我都对tmp重新燃起希望了 拜托不要修掉啦 QQ
作者: sppmg (sppmg)   2016-09-18 10:31:00
holydc +1 ,我直觉也是asm XD
作者: Lordaeron (Terry)   2016-09-18 11:46:00
鬼扯ASM,就已经不是在讨论问题了。C++多了一大堆,然后有人说,你可以C like 啊哪没问题啊,何苦搞哪么多?一来雷没变少,二来反而变多各家的实作又不尽一致,何不修正旧有的问题?什么lambda, auto的,又不是没它们就不能写,不好写.
作者: Caesar08 (Caesar)   2016-09-18 12:10:00
长知识囉
作者: lc85301 (pomelocandy)   2016-09-18 12:39:00
我已经看不懂这是什么东西了(yay
作者: steve1012 (steve)   2016-09-18 12:45:00
没 auto 要多打字的确是很不好写啊 lolmove semantic 跟 shared pointer 也的确更好维护又不是叫每个人实作这些功能 只是拿来用还能嫌 lol爱用 c 可以用 c啊
作者: Bencrie   2016-09-18 13:14:00
更炫炮
作者: Sidney0503 (Sidney0503)   2016-09-18 13:29:00
不爽不要用 每个语言都有自己的毛和边界问题不同语言适用范围也不一样你自己也说没auto一样可以写程式 没人拿枪逼你用auto事实上就是除了C++没有语言可以做到move semanticRvalue Reference就是只有C++11才有 这种效能上的掌控 是比其他语言强的 所以追求极致效能调教不会使用C语言而是C++你不需要这么细微的效能处理 就不要用c++所以没有C++11 可以用asm写出类似&&的想法提asm没有错啊 并不是鬼扯C语言也有undefined behavior 不少还被C++规范来C++主场战C++ 你也是蛮幽默的
作者: Lordaeron (Terry)   2016-09-18 14:23:00
不爽当然可以不用啊,但有人提到雷了,就当然得提啊。致于你扯的效能,我就等你一篇C++11 VS C的大作了,战吧
作者: Sidney0503 (Sidney0503)   2016-09-18 14:32:00
地表上就是除了C++没有语言可以玩Rvalue-ref地表上就是没有语言可以做到比C++更细微的调教战不起来
作者: grayStone (灰色石头)   2016-09-18 15:02:00
c++ > c
作者: Lordaeron (Terry)   2016-09-18 15:06:00
就等你的测试大作啊,战不战得起,不会是用嘴吧。C++ VS C, PERORMANCE COMPARE!! 等待中。
作者: bibo9901 (function(){})()   2016-09-18 15:08:00
move semantics 是特色没错, 但要说是"优点"可能不适合有 gc 或 jit 的语言几乎是不需要move semantics
作者: Sidney0503 (Sidney0503)   2016-09-18 15:14:00
有GC就是慢 比如像java 但是java有一种情况可以有接近c/c++效能的状况 就是custom Collector
作者: bibo9901 (function(){})()   2016-09-18 15:20:00
其实用 C 做分解动作也可以有move semantics同样的效果
作者: Sidney0503 (Sidney0503)   2016-09-18 15:20:00
成立的原因也很简单 效能可以取决于释放空间的时机
作者: bibo9901 (function(){})()   2016-09-18 15:21:00
但c++还多了一堆负担: rule-of-five, universal ref. 等
作者: Sidney0503 (Sidney0503)   2016-09-18 15:28:00
那是因为不同状况下 move和copy成本不一样所以c++11提供了选择复制或搬移两种手段选择语言本来就是针对问题选需要的工具追求极致调教的3A游戏引擎核心几乎都是用C++刻的然后接口成python这类手稿语言方便快速开发当然快的代价就是不稳 C++本身又包山包海 自然是会有不少行为会让compiler错乱 现在C++的精神就是提供大量的选择 每个选择都会有优缺点
作者: Bencrie   2016-09-18 15:34:00
乱七八糟
作者: Sidney0503 (Sidney0503)   2016-09-18 15:34:00
楼上这个说法我还真无法反驳 XDDDDD
作者: jimfan (jimfan)   2016-09-18 15:53:00
话说回来constexpr就是为了在编译时间预先找出陈述式的值用以减少runtime的运算,说到底还是为了让程式跑更快,代价系语言、编译器变复杂(我这不是废话吗)用心良苦 :-)
作者: Lordaeron (Terry)   2016-09-18 17:27:00
@Sidney0503,别再嘴了,只讲performance就好了。越来越多雷这件事,本来就是成立的。无可否认。
作者: holydc (のヮの)   2016-09-18 20:29:00
就已经认定新语法都是雷了,人家讲什么当然看起来都像鬼扯嘴砲囉
作者: yoco (眠月)   2016-09-19 00:03:00
...C++ 又发疯了...
作者: Lordaeron (Terry)   2016-09-19 11:50:00
旧语法就一堆雷了,要说新语法没雷,要怎么讲?
作者: final01 (牛顿运动定律)   2016-09-19 13:43:00
坐等yo 神开战XD
作者: holydc (のヮの)   2016-09-19 20:03:00
连旧语法都雷了哈哈哈
作者: steve1012 (steve)   2016-09-20 00:30:00
到底是什么雷啊 雷来雷去打高空 好像几万个雷一样
作者: bibo9901 (function(){})()   2016-09-20 00:34:00
most vexing parse 就可以雷到你跳起来
作者: steve1012 (steve)   2016-09-20 00:34:00
这个"本来"是不是该有点根据啊
楼主: CoNsTaR ((const *))   2016-09-20 02:03:00
不是啊 自己不会写当然要怪语法雷啊 这样自尊心才舒服嘛
作者: bibo9901 (function(){})()   2016-09-20 08:56:00
只有语法雷? exception 雷不雷? 多载消解雷不雷?各种implicit conversion雷不雷?
楼主: CoNsTaR ((const *))   2016-09-20 09:49:00
期待楼上哪天设计出一个对任何面向都没有缺点的语言到底是你该配合、学习怎么驾驭一门语言和发挥它的优点还是语言应该做到让你随便写都不会有问题?充分了解如何对付一门语言的缺点、最大限度发挥它的优点不就是“程式设计师”和别人不同的地方?要不然就写写程式、没事嘴砲一下我妹也会啊
作者: steve1012 (steve)   2016-09-20 10:38:00
的确是挺不雷的啊…
作者: Killercat (杀人猫™)   2016-09-20 10:54:00
MVP我前阵子才被雷到一次 orz不过MVP比较偏向是因为相容性而无法补齐的洞不过现在已经有搭另外一座桥给你就是另外其实compile time都是小雷 runtime才是大雷....
作者: shadow0326 (非议)   2016-09-20 11:33:00
我记得在板上也看过几次被MVP雷到的问文 XD
作者: caras   2016-09-20 12:27:00
妹妹躺着也中枪 QQ
楼主: CoNsTaR ((const *))   2016-09-21 06:23:00
帮妹妹QQ XDD
作者: firejox (Tangent)   2016-09-21 09:14:00
只要能减少开发维护成本都很好:D
作者: Ommm5566 (56天團)   2016-09-22 07:22:00
universal ref是负担? 直接可以搬rvalue的方法说慢我还真不知道哪个语言可以处理Lvalue比Rvalue快请bibo9901大大说一下 顺便说一下哪个有gc和jit的语言效能赢过c++另外说C++雷的 麻烦说一下哪个语言不雷这边有很多会各种语言的可以和你讨论连特性都不懂还可以大放厥词 真的很好笑
作者: Lordaeron (Terry)   2016-09-22 21:10:00
既然有雷不排,放新雷? 另外,没人说慢哦,是看有多快而已而且,从没有人说过任何面向都没缺点,只有说排雷而已.程式写久了,中文逻辑会变不好.CPU本身就一堆雷了.用:不然不要用啊? 或是, 哪有没雷的语言, 这种人根本没理性讨论的空间.充分了解如何对付一门语言OOXX 的,叫compiler写程式是为了解决问题,而不是要发挥语言的OOXX.你发挥得多好都好,问题没解决,一样是一点价值都没有.
作者: steve1012 (steve)   2016-09-22 23:09:00
感觉根本没讲清楚怎么雷啊 随便丢个 mvp exception overloading implicit conversion 就说这语言很雷 没写篇文章说服大家为啥算雷 为啥没办法避免 我是不太信服有多雷
作者: chuegou (chuegou)   2017-09-23 04:22:00
战! 以前的板风是不是就这样阿?
作者: Ommm5566 (56天團)   2017-09-23 08:49:00
真的觉得雷 就是语言开发社团发issue 顺便提一下这个问题在实作compiler过程如何改进阿XD现实就是有一好没两好 通常雷都是为了达到某种好处存在的副作用 Stroustrup说了这世界上分成两种语言the ones people complain about and the ones nobody use.我说使用语言有两种人 去理解它的人 和不去理解它的人
作者: Lordaeron (Terry)   2017-09-23 09:36:00
有什么雷,自己GOOGLE不就有了?你连PERFORMANCE都要代答,就快回一篇比较吧!!而assembly我只会x86的x64的没在看C++的雷怎么找,教你用google找英文c++ traps或用c++ pitfalls来查, 也一堆.
作者: Ommm5566 (56天團)   2017-09-23 10:23:00
悲哀 一开始说多这些东西有比较厉害吗 真的回答了就说雷很多使用指标指向配置空间以外内存操作会坏掉算不算雷?你先回答这个问题 这个问题算雷 不算雷的判断方式说出来 才能讨论其他东西是不是雷如果在你眼里这个是雷 那就是语言特性的你不能接受而已如果这个不算雷 那什么我觉得不雷的你觉得雷?什么我觉得雷的你觉得不雷?我觉得效能慢叫雷 C++可是最不雷的语言如果你不能接受效能的说法 那请说出哪个语言可以把Lvalue可以让user叫compiler当Rvalue处理另外Lordaeron在上一篇推文说到什么事都有辨法避免啊请问如何在操作memory的时候如何让人避免使用错误内存区间的同时不要使用检查以免降低效能?你说不出这个问题的解答 那么雷的就不是语言而是自己别人已经回答你第一个有比较厉害的问题吗 你却不回答别人问你什么是雷而且雷确实有变少 C++有对未定义行为做规范你的第二个问题也回答了没auto确实比较不好写 当要用一个变量接function回传值如果要改type 以前要改两个地方 有auto就少改一个地方同时回答你有没有比较好 雷有没有比较少了然后一开始说c++雷 又跑去说cpu雷事实上谁在跳针很明显 你的问题都被回答了你却避而不答别人的问题
作者: steve1012 (steve)   2017-09-23 11:02:00
好啦我帮妳查了 http://www.programmingincpp.com/a-list-of-traps-and-tips.html还有几篇其他的 这些就是你说很雷的地方吗?
作者: Lordaeron (Terry)   2017-09-23 13:51:00
如果才查到几篇,哪你的该好好回去再查了.致于有哪些雷,请自行查,别自札草人自己打.
作者: steve1012 (steve)   2017-09-23 14:01:00
先说雷的应该要举吧…又不是我说是雷的 问老半天也讲不出来哪里雷
作者: Ommm5566 (56天團)   2017-09-23 14:08:00
你提出的所有问题都被回答了 说别人不理性自己却讲不出任何一个东西 别人说performance你要求一篇文章比较别人要求你说哪里雷却叫别人自己查 如果你的思考方式只有这种程度那你还是多上FB或D卡文 那边比较适合你
作者: Lordaeron (Terry)   2017-09-23 14:56:00
咦? 浪费力气? 我说雷的,不就举了? 不会去查来怪我?既然有人说performance会比较好, 我查过没人提,当然得要,不然你查出来给我也可以.至于讲不下去, 鬼扯什么分帐号的, 闪一边凉快去就好了.这等程度,还可以扯分帐号的,有多少解决问题的能力可见一斑!!
作者: Ommm5566 (56天團)   2017-09-23 15:34:00
是喔 我都查不到有人说C++雷耶 随便查都说C++棒棒棒你查不到来怪我? 这等程度 有多少解决问题的能力可见不然你查出来给我也可以至于讲不下去闪一边凉快去就好了这种言论真的是既理性又有助于讨论 受教了既然你google能力不太好我查给你http://lmgtfy.com/?q=c%2B%2B+performance我已经查给你了 不用谢顺便建议你 如果连查资料都不会还是不要碰语言好了对你而言看起来真的太困难 连这都查不到顺便建议可以去做面包 不用查资料也可以做不过照你连这都查不到来推论 大概也不会使用食谱吧?我个人做面包是会查网络资料啦 因为我会使用google不过你大概也会抱怨面包制作过程很雷 烤箱很雷所以我建议你还是不要做面包好了
作者: Lordaeron (Terry)   2017-09-23 16:14:00
笑死人了, c++ performance问题是C++出来时就有的了.跟现在在扯的哪个何关? 你会下关键字吗?如果你连自己都找不到, 就别出来搞笑了.刚无聊又查了一下, C++ auto type pitfalls,第一页就..
作者: steve1012 (steve)   2017-09-24 01:12:00
原来你觉得 auto 很雷啊 我随便看了搜寻前几篇 没搞懂规则算 c++雷?那弱型别语言不就宇宙最雷
作者: sa074463 (垒包)   2017-09-24 09:15:00
他的ID风格看习惯了,原PO太认真了
作者: Lordaeron (Terry)   2017-09-24 09:37:00
@sa074463,原来你这么熟我? @steve1012搞懂?该不会是要人去K SPEC 的吧?
作者: steve1012 (steve)   2017-09-24 09:42:00
不然你说一下 auto到底哪里雷 或是贴一篇文章啊 我是真的不知道你在说哪里雷还是你根本不太会 c++
作者: Lordaeron (Terry)   2017-09-24 09:47:00
我真的不太会C++,但你在唬烂有看GOOGLE的结果.
作者: steve1012 (steve)   2017-09-24 10:37:00
google 第一篇是 stackoverflow 问说是否 dangerous第二篇问为啥要选 auto 当关键字你到底是在拿那篇当佐证 你贴出来不就行了
作者: shadow0326 (非议)   2017-09-24 12:18:00
有在逛软工板的话应该都还满习惯这ID风格的
作者: Lordaeron (Terry)   2017-09-24 18:47:00
@steve1012,咦?你不是不知我在说什么的吗?哪既然你有看到,不就是了?
楼主: CoNsTaR ((const *))   2017-09-25 01:19:00
某 L 要呛来呛我啊 怎么柿子挑软的吃一直找 s 大的麻烦勒?
作者: Lordaeron (Terry)   2017-09-25 13:09:00
呛你什么? 谁在呛人呢? 你凭啥代回?
作者: steve1012 (steve)   2017-09-25 14:09:00
你根本啥都没回答啊 只有跳针 反正你连佐证都讲不出来我是懒得战了 我可不想被水桶
作者: wtchen (没有存在感的人)   2017-09-25 16:11:00
L先生我再警告你一次,你不爽用C++可以不要用,但是请不要来乱。不然就浸水桶。
作者: ggBird (ggBird)   2017-09-25 18:43:00
直接桶了啦
作者: sunneo (艾斯寇德)   2017-09-25 22:25:00
已经快10年了 版上大大们各有专精 相信只是各方面理解不同
作者: Lordaeron (Terry)   2017-09-26 22:16:00
版工是吧.我乱哪一条了? 你是版工就随你爽是吧?
作者: s25g5d4 (function(){})()   2017-09-26 22:17:00
挑衅版主囉
作者: Lordaeron (Terry)   2017-09-26 22:17:00
@steve1012,哦,查了又变看不到?哪些都不是证了?是版工挑衅!! 请搞清楚方向.整串下来,哪些人只在对人,不对事,很清楚的,别删文哦.
作者: wtchen (没有存在感的人)   2017-09-27 02:22:00
好了,L现在浸水桶了,不要理他了

Links booklink

Contact Us: admin [ a t ] ucptt.com