Re[29]: Они сделали дерьмо опять
От: Kluev  
Дата: 23.06.20 10:28
Оценка: :)
Здравствуйте, YuriV, Вы писали:

YV>Здравствуйте, Zhendos, Вы писали:


Z>>Так идея в том чтобы storage тоже имел "forward declaration" наряду с blob.


Z>>https://stackoverflow.com/questions/951234/forward-declaration-of-nested-types-classes-in-c


YV>Это не идея, а непонимание. Полный тип в C++ это его имя и описание его структуры. А "forward declaration" объявляет лишь имя типа (incomplete type) структура которого сейчас неизвестна и поэтому получить доступ к структуре (storage::blob) incomplete type через его имя невозможно. Тут всё логично и никакой "дыры" в языке нет. Можно ввести в язык расширяемые классы, ну как namespace может расширяться в разных единицах трансляции новыми declaration/definition. Этакая альтернатива наследованию, но к чему это может привести прогнозировать сложно.


Неверно. Вложенный тип не является частью типа, а находится в его пространстве имен.
Нет никаких проблем чтобы сделать опережающее описание следующим образом:

class storage;
class storage::blob;
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.