Здравствуйте, Олег К., Вы писали:
ОК>>>operator T () const объявлен но не определен (может определили за пределами структуры но меня ломает лезть в статью).
N>>Пропускают определение целенаправленно, так что тут всё корректно.
ОК>Не думаю.
Это не вопрос для размышлений, это приём такой, старый и действенный.
ОК>>>Компилятор видимо пропустил.
N>>Правильно сделал. Никогда не сталкивался с конструкцией вида:
N>>N>>private:
N>>ClassName(ClassName const&);
N>>ClassName& operator=(ClassName const&);
N>>
N>>?
ОК>Ты путаешь немного, имхо. Страуструп когда объясняет такие конструкции все равно пишет пустые тела или какой-нибудь минимальный return а не просто объявления (как ты тут написал).
Не путаю, тут тот же случай. Реализация просто не нужна, поэтому во избежание ошибок и недоразумений её лучше не писать.
ОК>>>Я бы написал operator T () const { return T(); } но это все мелочи.
N>>Сделал бы лишнюю работу.
ОК>Не думаю и не повредило бы.
Повредила бы. Лишний код, простор для ошибок.
ОК>>>У меня вообще посыл был в том что это все ненужные навороты.
N>>Когда всякие автогенераторы пишешь, парсеры, библиотеки и т.п. подобные вещи необходимы и сильно уменьшают время разработки.
ОК>-1. Ненужный код и
Ты только что рассказывал как ты лишний код пишешь
ОК>ненужная дополнительная complexity.
При профессиональном подходе — наоборот. Введение локальной сложности сильно упрощает систему в целом. Многократно проверено.