오류, 버그, 질문 - 페이지 2064

 
fxsaber :
언어 버그

사용자 코드의 오류는 버그가 아닙니다. InitIndicators( CIndicator *) 메서드가 누락되었습니다.

 
A100 :

사용자 코드의 오류는 버그가 아닙니다. InitIndicators(CIndicator *) 메서드가 누락되었습니다.

문자 s가 누락되었지만 컴파일러 메시지 가 잘못되었으므로 SD는 수정에 착수했습니다.

 
fxsaber :

SD가 수정을 인수했습니다.

오류가 없는 것은 고칠 수 없습니다. <Indicator.mqh> 파일을 살펴보세요. 문자 s가 없는 CIndicator 클래스가 있습니다.
 
A100 :
오류가 없는 것은 고칠 수 없습니다. <Indicator.mqh> 파일을 살펴보세요. 문자 s가 없는 CIndicator 클래스가 있습니다.

SD에 그것에 대해 씁니다. 그들은 (내가 아니라) 오류가 있고 수정될 것이라고 주장합니다.

 
fxsaber :

SD에 그것에 대해 씁니다. 그들은 (내가 아니라) 오류가 있고 수정될 것이라고 주장합니다.

당신은 원래 그것이 버그라고 말했습니다 - 그것이 무엇인지 설명할 수 있습니까? 뭐가 문제 야? 다음은 단순화된 코드입니다.

 class A1 {}; //Indicators
class A2 {}; //Indicator
class BB {
public :
     void f( A1 * ) {}
};
class B : public BB {
public :
     void f( A1 * ) {}
};
void OnStart ()
{
    A2* a;
    B b;   
    b.f( a ); //error: 'f' - no one of the overloads can be applied to the function call
}
 
fxsaber :

SD에 그것에 대해 씁니다. 그들은 (내가 아니라) 오류가 있고 수정될 것이라고 주장합니다.

컴파일러 오류 메시지가 완전히 정확하지 않습니다.

컴파일러는 가상 메서드 재정의를 오버로드로 처리하므로 이 문제를 해결할 것입니다.
 
이것이 올바른 컴파일러 메시지 입니까?
 int Tmp = 2 ;
  
if (Tmp % 2 ) // expression not boolean
 

버그인가요?

 // Добавление элемента в конец произвольного массива
template < typename T>
void AddArrayElement( T &Array[], T Value, const int Reserve = 0 )
{
   const int Size = ArraySize (Array);
  
   ArrayResize (Array, Size + 1 , Reserve);
  
  Array[Size] = Value;
}

class A {};
class B : public A {};

void OnStart ()
{
  A* Array[];
  
  A* a = new B; // no problem
  AddArrayElement(Array, (A*)( new B)); // no problem
  
  AddArrayElement(Array, new B); // template parameter ambiguous, could be 'A*' or 'B*'
}
 

핸들로 파일 이름을 어떻게 알 수 있습니까?

 
언어 또는 구문 제한?
 struct A
{
   int i;
};

struct B
{
   const A a;
  
  B() : a({ 0 }) // 'a' - constructor not defined
  {
     const A b = { 0 }; // no problem
  }  
};