错误、漏洞、问题 - 页 2272 1...226522662267226822692270227122722273227422752276227722782279...3184 新评论 A100 2018.09.02 22:25 #22711 fxsaber:一个人只被创造。此外,在F,你将不能使用T。 这本身就是一个错误。template<typename T> void f() { Print( sizeof( T )); } struct A { int a; }; void OnStart() { f<int>(); //(1)//нормально f<A>(); //(2)//нормально struct B { int b; }; f<B>(); //(3)//Error: 'B' - undeclared identifier } 而(1)(2)和(3)的根本区别是什么? A100 2018.09.03 00:01 #22712 fxsaber:此外,在F,你将不能使用T。总而言之,这种情况对我来说是显而易见的。此外,违反了你的禁令,在f中使用T template<typename T> void f() { class T; Print(__FUNCSIG__, ":" , sizeof(T)); } template<typename T1, typename T2> void g() { class T1 { T2 x; } a; f<T1>(); } void OnStart() { class A {}; g<A,int >(); g<A,double>(); } 正如你所看到的,它的编译没有错误,而且只要一切都 "可以解释",结果是荒谬的这一事实并不重要。 rinat_a_n 2018.09.03 00:14 #22713 大家好。帮助。不能做黄金交易,一切都在工作,但我不能做的是交易。以下是它看起来的截图。 附加的文件: IMG_20180825_092821.png 144 kb IMG_20180825_092957.png 82 kb Stanislav Dray 2018.09.03 00:56 #22714 这段代码的神圣意义是什么,他们为什么要把它塞进标准库? if(IsStopped(__FUNCTION__)) return(false); 现在不可能在OnDeanite中使用标准库中的平仓或下单函数,例如使用REASON_REMOVE。 fxsaber 2018.09.03 04:32 #22715 Stanislav Dray:这段代码的神圣意义是什么,他们为什么要把它塞进标准库? 现在你不能在OnDynit中使用标准库中的函数来关闭头寸或订单,例如使用REASON_REMOVE。是的,那是一个错误。 fxsaber 2018.09.03 05:16 #22716 A100:此外,我违反了你的禁令,在f中使用T正如你所看到的,它的编译没有错误,而且结果是荒谬的这一事实并不重要--主要的是一切都 "可以解释"。你不太明白什么是模板。它们与宏类似,只是具有某些特征。 以下是代码 template<typename T> void f() { class T{ MqlTick a; }; Print(__FUNCSIG__, ":" , sizeof(T)); } template<typename T1, typename T2> void g() { class T1 { T2 x; } a; f<T1>(); } void OnStart() { class A {}; g<A,int >(); g<A,double>(); } . void f<A>():68 void f<A>():68 这是因为T是一种设置,像宏一样,只是有某些注意事项。我们最后得到的是,一个签名被创造出来。在函数内部,没有人知道A,它在函数中被替换成了T。但你在里面定义了这个A,所以不会再发生编译错误。我在里面插入了MqlTick,以表明这个A与其他同名的类没有关系。 简而言之,MQL5中的内部类在父函数之外是不可见的。只有作为类的类型的名称被传递为T。在这种情况下,该名称没有对父函数的引用。 也就是说,所有的事情在逻辑上都是可以解释的。这不是一个错误,而是这样一个有限的实现。 也许在求职面试时,一个C++程序员会说,这是不可能的。 template<typename T> void f() { class T{}; } MQL5是很有可能的。 A100 2018.09.03 07:19 #22717 fxsaber:你不太明白什么是模式。 fxsaber:ZS 可能一个C++程序员在工作面试中会告诉你这是不可能的 如果你认为这在C++中是不可能的,那就意味着不是我,而是你不了解什么是模板以及它们是如何工作的......更重要的是,你无法区分一个草率的实现和一个受约束的实现。 fxsaber 2018.09.03 08:18 #22718 A100: 如果你认为这样的事情在C++中是不可能的--那说明不是我的问题,而是你不了解什么是模板,它们是如何工作的......更是让你无法分辨一个马虎的实现和一个有边界的实现读一读你给出评论的句子的第一个词。我对MQL5中的模板和宏的理解是这样的:我不用尝试编译就能意识到你的例子在MQL5中是无法编译的。C++ - 我不知道,这并不妨碍它。 如果你能展示C++对这段代码的反应,我将不胜感激 关于交易、自动交易系统和策略测试的论坛 虫子,虫子,问题 fxsaber, 2018.09.03 07:16 ZS 可能一个C++程序员在工作面试中会告诉你这是不可能的 template<typename T> void f() { class T{}; } A100 2018.09.03 08:53 #22719 fxsaber: 如果你能告诉我C++对这段代码的反应,我将非常感激。 反应与MQL中相同。为什么应该不同呢?一个模板就是一个模板 TheXpert 2018.09.03 09:03 #22720 fxsaber:你并没有真正理解什么是模板。而且它们类似于宏,只是有一些技巧。 是的,这个例子将不会在pluses上编译。 错误:'struct f()::T'的声明在模板参数template<typename T>的阴影下。 但即使它编译了,结果也会让你吃惊,因为类的名字只是 "T"。 如果它在mql中是不同的,这是不正确的。 1...226522662267226822692270227122722273227422752276227722782279...3184 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
一个人只被创造。此外,在F,你将不能使用T。
此外,在F,你将不能使用T。总而言之,这种情况对我来说是显而易见的。
此外,违反了你的禁令,在f中使用T
正如你所看到的,它的编译没有错误,而且只要一切都 "可以解释",结果是荒谬的这一事实并不重要。
这段代码的神圣意义是什么,他们为什么要把它塞进标准库?
现在不可能在OnDeanite中使用标准库中的平仓或下单函数,例如使用REASON_REMOVE。
这段代码的神圣意义是什么,他们为什么要把它塞进标准库?
现在你不能在OnDynit中使用标准库中的函数来关闭头寸或订单,例如使用REASON_REMOVE。
是的,那是一个错误。
此外,我违反了你的禁令,在f中使用T
正如你所看到的,它的编译没有错误,而且结果是荒谬的这一事实并不重要--主要的是一切都 "可以解释"。
你不太明白什么是模板。它们与宏类似,只是具有某些特征。
以下是代码
.
这是因为T是一种设置,像宏一样,只是有某些注意事项。我们最后得到的是,一个签名被创造出来。在函数内部,没有人知道A,它在函数中被替换成了T。但你在里面定义了这个A,所以不会再发生编译错误。我在里面插入了MqlTick,以表明这个A与其他同名的类没有关系。
简而言之,MQL5中的内部类在父函数之外是不可见的。只有作为类的类型的名称被传递为T。在这种情况下,该名称没有对父函数的引用。
也就是说,所有的事情在逻辑上都是可以解释的。这不是一个错误,而是这样一个有限的实现。
也许在求职面试时,一个C++程序员会说,这是不可能的。
MQL5是很有可能的。
你不太明白什么是模式。
ZS 可能一个C++程序员在工作面试中会告诉你这是不可能的
如果你认为这在C++中是不可能的,那就意味着不是我,而是你不了解什么是模板以及它们是如何工作的......更重要的是,你无法区分一个草率的实现和一个受约束的实现。
如果你认为这样的事情在C++中是不可能的--那说明不是我的问题,而是你不了解什么是模板,它们是如何工作的......更是让你无法分辨一个马虎的实现和一个有边界的实现
读一读你给出评论的句子的第一个词。我对MQL5中的模板和宏的理解是这样的:我不用尝试编译就能意识到你的例子在MQL5中是无法编译的。C++ - 我不知道,这并不妨碍它。
如果你能展示C++对这段代码的反应,我将不胜感激
关于交易、自动交易系统和策略测试的论坛
虫子,虫子,问题
fxsaber, 2018.09.03 07:16
ZS 可能一个C++程序员在工作面试中会告诉你这是不可能的
如果你能告诉我C++对这段代码的反应,我将非常感激。
你并没有真正理解什么是模板。而且它们类似于宏,只是有一些技巧。
是的,这个例子将不会在pluses上编译。
但即使它编译了,结果也会让你吃惊,因为类的名字只是 "T"。