Erros, bugs, perguntas - página 1434

 

Erro de compilação:'<' - descoordenação de modelos

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

Erro de compilação:'<' - descoordenação de modelos

Obrigado.
 

Não pode especificar o nome completo para construtor e destruidor numa declaração, ao passo que pode para métodos (e porque são os primeiros piores?)

class A {
        void A::f() {}     //нормально
               A::A() {}  //Error: '::' - name expected
        virtual A::~A() {} //Error: '::' - name expected
};
Porque é que isto é necessário? - acabou por ser a única forma de separar a declaração e a implementação em modelos.
 

Fazer algo quanto à janela de fecho da encomenda.
Os números de encomenda não são totalmente visíveis. Quando se muda a largura de uma coluna, esta não é fixa e reduz-se para trás. E a janela em si não pode ser esticada.


 

Incapaz de emitir o quinto dígito com SetLevelValue()

//+------------------------------------------------------------------+
//|                                               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);
  }
//+------------------------------------------------------------------+

Resultado:

NO5-Znak

 
IndicatorDigits. Não sei como é que se chama neste momento. Penso que alguém me vai dizer.
 
Комбинатор:
IndicatorDigits. Agora não sei como é que se chama. Penso que alguém me vai dizer.

Deve ser isso ;)

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

Deve ser isso ;)

Experimentei-o - não ajuda.

Sem quinto dígito

//+------------------------------------------------------------------+
//|                                               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:

Experimentei-o - não funciona.

Resposta SD:

Equipa de Apoio2015.11.20 14:33

Em quatros, os níveis são produzidos com uma precisão de 4 dígitos.

Ninguém costumava prestar atenção a isto. É por isso que este lugar não foi tocado até agora.

Vamos fazê-lo sair comprecisão do indicador de Dígitos

 

Erro de compilação

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
É suficiente que B::a seja estático
Razão: