水木社区手机版
首页
|版面-C++程序设计语言(CPlusPlus)|
新版wap站已上线
返回
1/1
|
转到
主题:一个构造函数的问题
4楼
|
DoorWay
|
2022-01-20 14:13:50
|
展开
gcc20 clang17 vs2019,编译没有问题。
https://en.cppreference.com/w/cpp/container/priority_queue
人肉读代码,mycomparison(const bool& revparam=false) 构造函数1 bool类型(内置类型)要传const引用? 2 引用还能设置默认参数?
是有特殊的考虑吗,我孤陋寡闻了。
--
FROM 61.185.186.*
16楼
|
DoorWay
|
2022-01-20 16:52:19
|
展开
这是一个著名的问题,有个专门的名字叫 most vexing parsing
Effective STL 第六节 和 Effective Modern CPP 第七节里都提到过。
我记得Effective CPP里也有提到,但是搜vex没找到。—— 买本Effective的书吧,能看10年。
【 在 GoGoRoger 的大作中提到: 】
: 嗯,我也是这么想的,但是还是说明编译器理解有问题吧?
:
--
FROM 61.185.186.*
20楼
|
DoorWay
|
2022-01-20 17:08:56
|
展开
这属于cpp里那种,“结婚前真不知道,光是把牛奶放回冰箱都有这么多种错法”的问题。
读编译报错信息,是基本功,真的。
是程序员(编译器)与程序员(开发者)之间的灵魂沟通,穿越国界,跨越时空,能连接两个mental model;是code与decode的乐趣,是在森林里追踪野兽,是在传送门前解密古老咒语,是对冥冥之中神的旨意的揣测,是间谍猜测敌方行动计划,是罪犯躲避追踪指南……
一旦你习惯了读错误信息,其乐无穷。
【 在 GoGoRoger 的大作中提到: 】
: 关键是构造成功了,却在push的时候出错,而且提示极不可读,太复杂了。
--
修改:DoorWay FROM 61.185.186.*
FROM 61.185.186.*
22楼
|
DoorWay
|
2022-01-20 17:33:02
|
展开
与人类真实世界一样,出生(构造)与死亡(析构)是最值得关注的话题。
类似的还有:
最容易起纠纷的资源所有权。 (内存或其它资源分配与释放)
最难处理的是关系。 (对象与对象互相持有的复杂数据结构,如多叉树、图)
分治是管理庞大组织的法宝。 ( 分治算法与模块)
消息完整无误的传递非常困难。 (事件与消息机制)
你声明你做了什么比你真正做了什么要重要。 (接口)
最基础的劳动力是最不被重视、不值钱的。 (CPU算力,写垃圾代码占用不心疼)
friend带来的麻烦比便利多。 ( Effective Cpp作者原话 :-)
社会发展的想象尽头是无性繁殖,生命周期在盒子内,统一销毁。
计算机想象力的尽头,是……还没想好。
【 在 z16166 的大作中提到: 】
: 版上前一阵还争论了是否优先用{}初始化
:
--
FROM 61.185.186.*
24楼
|
DoorWay
|
2022-01-21 07:20:55
|
展开
我不这样认为。标准是接口,编译器是实现。说bug也不能算不到编译器。
大家的回帖,有价值的是告诉你错误在哪里,most vexing parse。
学了知道了就好,其他的不必纠结。还有贴代码时检查下,也有价值。
你可以问问楼里其他人。
【 在 GoGoRoger 的大作中提到: 】
: 抛开你说的这些,这不是很明显编译器的一个错误吗?
--
FROM 61.185.158.*
1/1
|
转到
选择讨论区
首页
|
分区
|
热推
BYR-Team
©
2010.
KBS Dev-Team
©
2011
登录完整版