错误、漏洞、问题 - 页 1981 1...197419751976197719781979198019811982198319841985198619871988...3184 新评论 Alexey Navoykov 2017.08.29 18:52 #19801 A100:这并没有真正改变什么 -- 编译错误(我有一个平板电脑 -- Borland编译器)。 嗯,所以你必须去看语言标准,看看是谁的编译器在捣乱。 A100 2017.08.29 19:08 #19802 Alexey Navoykov: 嗯,所以我们必须研究一下语言标准,看看是谁的编译器在捣乱。 第二个选择是类似的 #ifdef __BORLANDC__ class B; class A { int g( B * ); int i; }; class B : public A {}; int A::g( B *b ) { return b->i; } //Error: E224 #endif VS 2010失败了,因为它通过从B*到A*的隐式转换克服了私有性。 #ifdef __BORLANDC__ class B; class A { int g( B * ); int i; }; class B : public A {}; int A::g( B *b ) { return ((A *)b)->i; } //нормально #endif TheXpert 2017.08.29 19:40 #19803 Alexey Navoykov: 嗯,所以我们必须去找语言标准,看看是谁的编译器在捣乱。 gcc 7.2可以编译最新的版本,在这里检查过了 Compiler Explorer - C++ About the authorgodbolt.org These settings control how Compiler Explorer acts for you. They are not preserved as part of shared URLs, and are persisted locally using browser local storage. A100 2017.08.29 22:05 #19804 Комбинатор: gcc 7.2可以编译最新的版本,在这里检查过了结果如下表所示class B; class A { //MQL //BCC //VS2010 //gcc int f1( B *b ) { return b .i; } // - - + + int f2( B *b ) { return b .g(); } // + - + + int f3( B *b ) { return ((A *)b).i; } // + + + + int f4( B *b ) { return ((A *)b).g(); } // + + + + int f5() { return b .i; } // - - + + int f6() { return b .g(); } // + - + + int f7() { return ((A *)b).i; } // + + + + int f8() { return ((A *)b).g(); } // + + + + //--- int g() { return 0; } int i; B *b; }; class B : public A {}; 而msdn说:访问控制有助于防止对象被用于未经授权的目的。在进行显式类型转换(type conversions)时,这种保护就会失去。 Ahmet Garyagdyyev 2017.08.30 12:18 #19805 大家好。你能告诉我是否有办法在启用可视化时删除策略测试器中出现的指标窗口?它是由MT5中的wizarda生成的。我在MQL5文档 中看到,IndicatoRelease在Strategy Tester中不起作用。(我试图把这个函数插入OnDeinit中,但它开始抱怨说没有声明一个句柄)。我声明它,它就会产生其他错误)。还有别的办法吗? Aleksey Vyazmikin 2017.08.30 12:34 #19806 Ahmet Garyagdyyev:大家好。你能告诉我是否有办法在启用可视化时删除策略测试器中出现的指标窗口?它是由MT5中的wizarda生成的。我在MQL5文档 中看到,IndicatoRelease在Strategy Tester中不起作用。(我试图把这个函数插入OnDeinit中,但它开始抱怨说没有声明一个句柄)。我声明它,它就会产生其他错误)。还有别的办法吗?你可以把带有所有指标的模板改成你以前保存的任何模板。 Stanislav Korotky 2017.08.30 15:09 #19807 A100:结果如下表所示 长期以来,VS和gcc一直被认为是比Borland更有参考价值的*(或者至少在很大程度上不容易出现错误)。我自己用Borland很多年了,但基于它的其他优势。PS。*这不是我的个人意见,我不会讨论它。 pavlick_ 2017.08.31 16:44 #19808 同事们,有没有人遇到过实现STL c++库的尝试(考虑到语言能力)?最好是有代码库的放置,搜索说没有,但vrdug ....当然不是全部,而是一些基本的东西:一些通过模板的正常容器,以及那个auto_ptr(我当然是自己写的,但自写这种基元是很愚蠢的)。 我不明白为什么std µl是非模板的,为什么我们不得不为STL中的方法/类的类似物发明新的名字。 pavlick_ 2017.08.31 17:55 #19809 我发现了一个错误,我不打算完全插入编译过的文本,我将从脚本中提取碎片。class Source : public CObject { public: upindex_t start, top, lstart, ltop; }; CArrayObj sourcear; do { Source *new_src = new Source; new_src.start = last.start; new_src.top = last.top; new_src.lstart = prev_prev.start; new_src.ltop = prev_prev.top; if( ! sourcear.Add(new_src) ) return; } while(...); for(int i = 0; i < sourcear.Total(); ++ i) { Source cursrc = (Source*)sourcear.At(i); //!!!!! Это не вызывает ошибки во время компиляции }即:CObject*--> Source* --> Source的转换。或者是某种棘手的MQL Specific?ZS:而这样的字符串被吃掉了。Source new_src = new Source;那是胡说八道。在语言中没有复制弊端/操作者,我没有解读过它。这里发生了什么事? fxsaber 2017.08.31 18:03 #19810 pavlick_:或者是某种棘手的MQL Specific?class A {}; void OnStart() { A a = new A; }触发了默认的复制操作符。 1...197419751976197719781979198019811982198319841985198619871988...3184 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
这并没有真正改变什么 -- 编译错误(我有一个平板电脑 -- Borland编译器)。
嗯,所以我们必须研究一下语言标准,看看是谁的编译器在捣乱。
VS 2010失败了,因为它通过从B*到A*的隐式转换克服了私有性。
嗯,所以我们必须去找语言标准,看看是谁的编译器在捣乱。
gcc 7.2可以编译最新的版本,在这里检查过了
结果如下表所示
大家好。
你能告诉我是否有办法在启用可视化时删除策略测试器中出现的指标窗口?
它是由MT5中的wizarda生成的。
我在MQL5文档 中看到,IndicatoRelease在Strategy Tester中不起作用。(我试图把这个函数插入OnDeinit中,但它开始抱怨说没有声明一个句柄)。我声明它,它就会产生其他错误)。
还有别的办法吗?
大家好。
你能告诉我是否有办法在启用可视化时删除策略测试器中出现的指标窗口?
它是由MT5中的wizarda生成的。
我在MQL5文档 中看到,IndicatoRelease在Strategy Tester中不起作用。(我试图把这个函数插入OnDeinit中,但它开始抱怨说没有声明一个句柄)。我声明它,它就会产生其他错误)。
还有别的办法吗?
你可以把带有所有指标的模板改成你以前保存的任何模板。
结果如下表所示
长期以来,VS和gcc一直被认为是比Borland更有参考价值的*(或者至少在很大程度上不容易出现错误)。我自己用Borland很多年了,但基于它的其他优势。
PS。*这不是我的个人意见,我不会讨论它。
同事们,有没有人遇到过实现STL c++库的尝试(考虑到语言能力)?最好是有代码库的放置,搜索说没有,但vrdug ....当然不是全部,而是一些基本的东西:一些通过模板的正常容器,以及那个auto_ptr(我当然是自己写的,但自写这种基元是很愚蠢的)。
我不明白为什么std µl是非模板的,为什么我们不得不为STL中的方法/类的类似物发明新的名字。
我发现了一个错误,我不打算完全插入编译过的文本,我将从脚本中提取碎片。
即:CObject*--> Source* --> Source的转换。
或者是某种棘手的MQL Specific?
ZS:而这样的字符串被吃掉了。
Source new_src = new Source;
那是胡说八道。在语言中没有复制弊端/操作者,我没有解读过它。这里发生了什么事?
或者是某种棘手的MQL Specific?
触发了默认的复制操作符。