错误、漏洞、问题 - 页 1964

 
fxsaber:
...

这确实是一个漫长的过程。也许我不是唯一一个感到恼火的人。


是的,你不是唯一的人。)

 
fxsaber:

请解释 typeof。我无法为没有经验的程序员找到任何好的解释。

我删除了这几句话(不小心)。

你有https://www.mql5.com/ru/forum/1111/page1983#comment_5616331,一个类似的条目是这样的

template<typename T>
void g( T Value ) { Print(typename(Value)); }
不重要的区别:没有价值,因为它是多余的。
Ошибки, баги, вопросы
Ошибки, баги, вопросы
  • 2017.08.16
  • www.mql5.com
Форум алго-трейдеров MQL5
 
typedef void (*fn)();
void f() {}
void OnStart()
{
        fn ff = f;                   //Результат:
        Print( "1:", typename( ff )); //void(*fn)()
        Print( "2:", typename( f  )); //пусто
}
空的......为什么?
 

文件搜索:搜索字符串:"A\t\tB A

结果短语中缺少制表符:在'W:'文件夹中搜索'AB A'。

不影响搜索结果,但可能造成混乱。



Поиск - Инструменты - Пользовательский интерфейс - Справка по MetaEditor
Поиск - Инструменты - Пользовательский интерфейс - Справка по MetaEditor
  • www.metatrader5.com
В данном окне отображаются результаты глобального поиска и поиска в файлах. Информация представляется в виде таблицы со следующими полями...
 
A100:
空的......为什么?
void f() {}
void f( int ) {}
 
ffxsaber:

你又增加了模棱两可的内容

#ifdef __cplusplus
void f() {}
void f( int ) {}
void OnStart()
{
        void *ff = &f; //Error: E2336
}
#endif
当F独自一人时,没有任何歧义
 
A100:

你又增加了歧义。

只要有一个F,就不会有任何歧义

正是如此!现在我可以同时调用f各种函数和一个变量。这种模糊不清的地方必须有一些常识,以免造成随机错误。在我看来,通过向typename f发出一个空字符串,而不是在你不小心拿起和定义另一个f时产生问题,这是合乎逻辑的。

 
fxsaber:

正是如此!现在我可以同时调用f各种函数和变量。

因此,也许这种可能性是隐藏错误的源头!

#ifdef __cplusplus
void f() {}
static char f; //Error: E2238 
#endif
 
A100:

因此,也许这就是隐藏的错误的来源!

我喜欢这种可能性!你只需要意识到你在做什么。

 
fxsaber:

顺便说一句...IsStopped()返回一个bool。

void OnStart()
{
        Print( typename( IsStopped())); //bool
        Print(           IsStopped() ); //0
        Print( typename( _StopFlag  )); //int
}

这种打印方法扭曲了结果(0而不是假的)。在任何情况下,矛盾不(仅)在文件中。

https://www.mql5.com/ru/forum/1111/page1980#comment_5612130