Ошибки, баги, вопросы - страница 2064

fxsaber:

Напишите об этом в СД. Там утверждают (не я), что ошибка имеет место быть и ее будут править.

Вы первоначально заявили что баг - можете объяснить в чем он заключается? Что не так? Bот упрощенный код:

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:

Напишите об этом в СД. Там утверждают (не я), что ошибка имеет место быть и ее будут править.

Сообщение компилятора об ошибке не совсем корректное.

Компилятор обрабатывает переопределение виртуального метода как перегрузку, будем это исправлять.
Это правильное сообщение компилятора?
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
  }  
};
Комичная ситуация
class B;

class A
{
protected:  
  int i;

public:  
  void operator =( const B* Value )
  {    
    this.i = Value.i;       // 'i' - protected member access error
    
    // А так можно!
    this.i = ((A*)Value).i; // и нет ошибки: cannot convert from const pointer to nonconst pointer    
  }
};

class B : public A {};


Думал, ситуация в обоих случаях будет одинаковая. Ан нет!

Так можно только внутри класса А. Как по мне все ок.

fxsaber:

Как по хендлу файла узнать его название?

Насколько я помню, никак
Комбинатор:
Так можно только внутри класса А. Как по мне все ок.

ошибка

    this.i = Value.i;       // 'i' - protected member access error

уже исправлена, пожалуйста подождите выхода нового билда.