エラー、バグ、質問 - ページ 1434

 

コンパイルエラー:'<' - テンプレートミスマッチ

template<typename T>
class A {
        T t;
};
class B {
                        B() : a( new A<int> ) {} //Error: <' - template mismatch
        A<int> * const a;
};
 
A100:

コンパイルエラー:'<' - テンプレートミスマッチ

ありがとうございます、整理しています。
 

コンストラクタとデストラクタは宣言内でフルネームを指定できないが、メソッドは指定できる(なぜ前者の方が悪いのか?)

class A {
        void A::f() {}     //нормально
               A::A() {}  //Error: '::' - name expected
        virtual A::~A() {} //Error: '::' - name expected
};
なぜ必要なのでしょうか?- テンプレートで宣言と実装を分離する唯一の方法であることが判明したのです。
 

注文の締め切りの窓を何とかしてくれ。
注文番号が完全に表示されない。列の幅を変更すると、固定されずに狭くなって戻ってしまう。また、ウィンドウ自体を引き伸ばすことはできません。


 

SetLevelValue()で5桁目が出力 されない

//+------------------------------------------------------------------+
//|                                               Ind_TickTest01.mq4 |
//|                        Copyright 2015, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2015, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
#property indicator_separate_window
#property indicator_buffers 2
//-----
double   Buffer0[];
double   Buffer1[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
   IndicatorSetInteger(INDICATOR_DIGITS,8);
   SetIndexBuffer(0,Buffer0);
   SetIndexBuffer(1,Buffer1);
//-----
   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[])
  {
   IndicatorShortName("Ind Bid NO 5-ZNAK!!! >>"+DoubleToString(Bid,_Digits));
   Buffer0[0]=Bid-0.00015;
   Buffer1[0]=Bid+0.00015;
   SetLevelValue(0,Bid-0.0001);
   SetLevelValue(1,Bid-0.00005);
   SetLevelValue(2,Bid);
   SetLevelValue(3,Bid+0.00005);
   SetLevelValue(4,Bid+0.0001);
   return(rates_total);
  }
//+------------------------------------------------------------------+

結果

NO5-Znak

 
IndicatorDigits。今のところ名称はわかりません。誰かが教えてくれると思うんです。
 
Комбинатор:
IndicatorDigits。今となっては何という名前かわからない。誰かが教えてくれると思うんです。

それはそうでなければならない ;)

IndicatorSetInteger(INDICATOR_DIGITS,Digits());
 
Artyom Trishkin:

それはそうでなければならない ;)

試してみたが、効果がない。

5桁目がない

//+------------------------------------------------------------------+
//|                                               Ind_TickTest01.mq4 |
//|                        Copyright 2015, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2015, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
#property indicator_separate_window
#property indicator_buffers 2
//----- indicator_levelN
double   Buffer0[];
double   Buffer1[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
   IndicatorSetInteger(INDICATOR_DIGITS,5);
   SetIndexBuffer(0,Buffer0);
   SetIndexBuffer(1,Buffer1);
//-----
   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[])
  {
   IndicatorShortName("Ind Bid NO 5-ZNAK!!! >>"+DoubleToString(Bid,_Digits));
   Buffer0[0]=Bid-0.00015;
   Buffer1[0]=Bid+0.00015;
   SetLevelValue(0,Bid-0.0001);
   SetLevelValue(1,Bid-0.000075);
   SetLevelValue(2,Bid-0.00005);
   SetLevelValue(3,Bid-0.000025);
   SetLevelValue(4,Bid);
   SetLevelValue(5,Bid+0.000025);
   SetLevelValue(6,Bid+0.00005);
   SetLevelValue(7,Bid+0.000075);
   SetLevelValue(8,Bid+0.0001);
   return(rates_total);
  }
//+------------------------------------------------------------------+
 
Yury Kirillov:

試してみたが、うまくいかない。

レスポンスSD。

サポートチーム2015.11.20 14:33

4桁の精度でレベルを出力します。

昔は誰も気に留めなかった。だから、ここは今まで手をつけていなかったんです。

桁数表示の 精度で出力するようにしよう

 

コンパイルエラー

struct A {
        int a1;
        int a2;
};
struct B {
        static A a;
        static int b1;
        static int b2;
        static int b3;
};
A B::a = { 2, 3 };
int B::b1 = 1;
int B::b2 = B::b1;   //нормально
int B::b3 = B::a.a2; //'a2' - non-static members and methods cannot be used
B::aが静的であることで十分である。