错误、漏洞、问题 - 页 3102

 
mktr8591 #:
类似地--(const A*)转换为A*。
不太清楚你想向fxsaber传达什么。没有你,他也能清楚地了解代码中发生的事情。它只是向你展示了一个不应该出现的情况。编译器应该防止这种转换。
 
Sergey Gridnev #:
不太清楚你想向fxsaber传达什么。代码中到底发生了什么,没有你他也能理解。它只显示了一个不应该存在的情况。编译器应该抑制这种转换。
这是一个值得商榷的问题。如果没有这些转换,你在一些地方可能会遇到很多麻烦。此外,即使是编译器的这种禁令也可以绕过--论坛里有很多方法。
 
mktr8591 #:

而*2*行编译后工作正常。为什么?

初始化列表是初始化非静态常量的唯一合法(并特别提供)方式。

 
Andrei Trukhanovich #:

初始化列表是对非静态常量 进行初始化的唯一合法(也是特别设计的)方式。

所以他事后改变了 它的价值

 
A100 #:

所以他事后改变了 她的意思。

是的,不专心。错误?初始化列表的特征应该只适用于正在构建的对象

 
Andrei Trukhanovich #:

是的,不专心。错误?初始化列表的特征应该只与正在构建的对象有关

错误。我一开始也不明白。这就是为什么我说,你应该以大多数 都能理解的方式来写它。这也适用于接口

 
A100 #:

错误。我也没有马上理解它。这就是为什么我说你应该以一种绝大多数 人都能理解的方式来写它。这也适用于接口

当然,我同意关于错误报告的说法。

界面是另一个故事。例子 :

如果一个完全知道如何驾驶飞机的飞行员,在没有研究手册的情况下,换成另一种类型的飞机,使用不同的控制系统,他不会明白很多东西。

不可能做出一个复杂的界面,即使是大多数专业人士不研究文档也能理解。

 
这是一个编译错误。
class T {};                          //(1)
template<typename T> void f( T* ) {} //(2) Error: 'T' - identifier already used
而如果你调换。
template<typename T> void f( T* ) {} //(2)
class T {};                          //(1)

没关系的。根本区别是什么?

 
大家好!我最近开始在一个模拟账户上进行训练。今天我打开了:帮助 - MQL5web-终端。此后,交易平台停止加载。当我这样做时,结果发现我的模拟账户和我在那里训练的所有技术分析都被抹掉了。我不得不开一个新账户。为什么会发生这种情况?这种情况是否发生在真实账户上?
 
mktr8591 #:

在b3095中,我运行一个脚本。

如果你去掉重载f1(T* & Ptr),所有5个调用都返回 void f1<const X>(const X*const)。

这是某种特征吗?

我想把这个矛盾写成3行,但一下子没有成功