template<typename T> int f( const T& ) { returnsizeof( T ); } class A {}; voidOnStart() { const A * const a = new A; //Error: 'T' - unexpected token f( a ); }
class A { A() { ::ArrayResize( i1, 1 ); } int i1[ ]; int i2[1]; void f1() const { i1[0] = 0; } //нет сообщения ошибки void f2() const { i2[0] = 0; } //Error: 'i2' - member of the constant object cannot be modified
class A { A() { ::ArrayResize( i1, 1 ); } int i1[ ]; int i2[1]; void f1() const { i1[0] = 0; } //нет сообщения ошибки void f2() const { i2[0] = 0; } //Error: 'i2' - member of the constant object cannot be modified
编译错误
int f( const T& ) { return sizeof( T ); }
class A {};
void OnStart()
{
const A * const a = new A; //Error: 'T' - unexpected token
f( a );
}
在Metatrader 4帮助中关于iGator()指标 的内容
[in] Источник данных, идентификатор одной из линий индикатора. Mожет быть любой из следующих величин:
MODE_GATORJAW - синяя линия (линия челюсти аллигатора),
MODE_GATORTEETH - красная линия (линия зубов аллигатора),
MODE_GATORLIPS - зеленая линия (линия губ аллигатора).
下面是一个例子
double diff=iGator(NULL,0,13,8,8,5,5,3,MODE_SMMA,PRICE_MEDIAN,MODE_UPPER,1);
数据源MODE_UPPER,我知道在帮助中存在一个错误。
编译错误(或者说没有错误信息)
A() { ::ArrayResize( i1, 1 ); }
int i1[ ];
int i2[1];
void f1() const { i1[0] = 0; } //нет сообщения ошибки
void f2() const { i2[0] = 0; } //Error: 'i2' - member of the constant object cannot be modified
};
我发现在处理 鼠标按钮点击事件 时有两个错误。
1. 在OnChartEvent()中处理鼠标滚轮点击事件。我们的想法是,当点击鼠标左键(按住和不按住)、鼠标右键(按住和不按住)时,该函数会产生事件(id == CHARTEVENT_MOUSE_MOVE),但如果点击了滚轮,只有在按住时才会产生事件。也就是说,如果你只按下中键,然后立即松开,事件就不会产生。
2.在处理完鼠标左键按下(sparam == "1")后,将产生事件sparam == "0"。在点击鼠标右键后(sparam == "2"),由于某种原因,事件sparam == "0 "没有产生。所有的鼠标按钮不应该以同样的方式处理吗?我对点击转轮一事保持沉默,因为正如我在第1点中所说--当转轮被点击时,没有事件产生。
检查代码。
#property indicator_plots 0
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
ChartSetInteger(0,CHART_EVENT_MOUSE_MOVE,true);
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
const int prev_calculated,
const datetime &time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &tick_volume[],
const long &volume[],
const int &spread[])
{
return(rates_total);
}
//+------------------------------------------------------------------+
//| Обработка события графика |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,const long &lparam,const double &dparam,const string &sparam)
{
switch(id)
{
case CHARTEVENT_MOUSE_MOVE:
FuncMove(lparam,dparam,sparam);
break;
}
}
//+------------------------------------------------------------------+
//| Функция обработки события перемещения мыши |
//+------------------------------------------------------------------+
void FuncMove(const long lparam,// Х координата
const double dparam,// Y координата
const string sparam // Строковое значение статуса кнопки
)
{
Print(__FUNCTION__,": sparam = "+sparam);
}
//+------------------------------------------------------------------+
//| Функция деинициализации индикатора |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//--- Отписываемся от события передвижения мыши
ChartSetInteger(0,CHART_EVENT_MOUSE_MOVE,false);
}
//+------------------------------------------------------------------+
编译错误(或者说没有错误信息)
A() { ::ArrayResize( i1, 1 ); }
int i1[ ];
int i2[1];
void f1() const { i1[0] = 0; } //нет сообщения ошибки
void f2() const { i2[0] = 0; } //Error: 'i2' - member of the constant object cannot be modified
};
在f2函数中,A对象的状态改变了,因为A::i2数组不是动态的--它的所有元素都属于A对象。
编译错误
class B {
int A() { return 0; }
void f( int ) {}
void g() { f(A()); } //Error: 'A' - invalid cast operation
};
Dratuti。问题:我如何在移动浏览器(安卓、苹果)上向尚未通信的用户发送消息?我从几个不同的设备上看了一下--没有任何地方有 "发送消息 "的按钮,以及 "添加到其他人"。用户的页面看起来像这样,没有按钮。
我已经说了很久了。到目前为止,他们还没有说什么。
在鼠标按钮事件处理 中发现两个错误。
检查。
谢谢你,请检查图表上第一个可见条形的数目:ChartGetInteger( 0,CHART_FIRST_VISIBLE_BAR)。
问题是,如果你禁止图表滚动,并监测最后一个可见的条形图,那么在一个新的蜡烛的时刻,它的数字因某种原因而改变,尽管图表没有移动TF是M1,以便能够更快地检查。从指标开始。
#property indicator_plots 0
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//--- Подписываемся на событие движения мыши
ChartSetInteger( 0, CHART_EVENT_MOUSE_MOVE, true );
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
const int prev_calculated,
const datetime &time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &tick_volume[],
const long &volume[],
const int &spread[])
{
return(rates_total);
}
//+------------------------------------------------------------------+
//| Обработка события графика |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,const long& lparam,const double& dparam,const string& sparam)
{
switch( id )
{
case CHARTEVENT_MOUSE_MOVE:
Print( __FUNCTION__," "+TimeToString( TimeCurrent(), TIME_DATE|TIME_SECONDS )+": sparam = "+sparam+", ",(int)ChartGetInteger( 0, CHART_FIRST_VISIBLE_BAR ));
break;
}
}