class A {
public:
A( int ) { a = 2; }
A( long ) { a = 3; }
int a;
};
#define F( f, cN ) \
template<typename T> \
cN *f( T t ) { return ( new cN( t ) ); }
F( a11, A )
如果不使用参数化的宏,则通过手动替换参数。
//F( a11, A )template<typename T>
A *a11( T t ) { return ( new A( t ) ); }
voidOnStart()
{
int b = 10;
A *a = a11( b );
Print( a.a );
delete( a );
}
//--- Связь с основным файлом эксперта#include "..\Main.mq5"//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+void Func()
{
Print(Nevidimka); // Теперь подсвечивается и можно перейти к месту её объявления
}
//+------------------------------------------------------------------+
如果不使用参数化的宏,则通过手动替换参数。
那么一切都会好起来的无可言喻的惊讶...ME完全无法看到主层其他项目 文件中的inludes所声明的变量(它没有突出显示,也无法跳到变量定义)。
这样的情况有多久了?
无可言喻的惊讶...ME完全无法看到主层其他项目文件中的inludes所声明的变量(它没有突出显示,也无法跳到变量定义)。
这样的情况有多长时间了?
在每个 "inluder "中,你还必须指定要链接的其他文件。
该项目编译得很好,这意味着编译器看到了一切--什么地方。而ME的编辑则没有。
此外,你如何设想将主可执行的.mq5文件指定为声明变量 的插入器?
该项目编译得很好,这意味着编译器看到了一切--什么地方。而ME的编辑则没有。
此外,你如何想象将主可执行的.mq5文件指定为声明变量 的内联?
例如,像这样。
或者举一个简单的例子,在这个例子上你不能做什么。它将会更快。)例如,像这样。
或者举一个简单的例子,在这个例子上你不能做什么。它将会更快。)Main.mq5
\Project\Include\
Incl.mqh
...
项目 文件夹中的主文件。
Project\Include 目录下的一个插件文件。
项目 文件夹中的主文件。
Project\Include 目录下的一个插件文件。
这种毫无意义的姿态有什么意义?ME必须看到(和程序员)的变量和函数与编译器完全一样。
此外,你提出的建议在大多数情况下是不方便的(为每个项目 编辑inludes?)
每个文件的intellisense只在自己的范围内工作。也就是说,整个文件被扫描,包括其所有明显的内含物。
你建议显示一些文件的数据,而不显示其他未知文件的链接。这从根本上说是错误的。
那么这种毫无意义的姿态有什么意义呢?ME必须看到(和程序员)变量和函数与编译器完全一样。