Баг компилятора - ошибка приведения к сложному типу

 

Ошибка приведения к типу, содержащему динамические объекты.  Добавление каких-либо конструкторов не помогает.  Если убрать string, то всё компилируется нормально.

struct A
{ 
  int a;
  string str;
};

struct B : A { };

void f()
{
  B b;
  (A)b; // '(' - invalid cast operation
}
 
указатели должны каститься нормально
 
TheXpert:
указатели должны каститься нормально

Если б они ещё были у структур...

 

странно что для них вообще наследование работает )

структуры щас это какое-то сборище несуразиц

 
Alexey Navoykov:

Ошибка приведения к типу, содержащему динамические объекты.  Добавление каких-либо конструкторов не помогает.  Если убрать string, то всё компилируется нормально.

Какая-то особая принципиальная позиция, что должны быть структуры, но не классы? Какая-то конкретная задача, требующая решения, или просто делать нечего?

 
TheXpert:
указатели должны каститься нормально

Очень зыкспертно! 

 
Dmitry Fedoseev:

Какая-то особая принципиальная позиция, что должны быть структуры, но не классы? Какая-то конкретная задача, требующая решения

Да
 
Alexey Navoykov:
Да

Значит продолжайте упираться в стену. Очень продуктивный подход.

 
Dmitry Fedoseev:

Значит продолжайте упираться в стену. Очень продуктивный подход.

Вы о чём?
 
Alexey Navoykov:
Вы о чём?

А про кастинг указателей вопросов не возникло?

 
Dmitry Fedoseev:

А про кастинг указателей вопросов не возникло?

Были бы указатели, не возникло бы