Здравствуйте, maks1180, Вы писали:
M>Можно для разработки выносить изменяемые cpp файлы в отдельную компиляцию. M>Я это затеял ради: M>— не нужно заботиться о указании noexcept
Почему не нужно? Возможно компилятор во время оптимизации сумеет
их правильно рассчитать, но точно также он может это сделать и во время LTO (link-time-optimization).
Но вообще есть куча оптимизаций, которые делаются во время LTO,
девертулизация вызовов, встраивание вызовов, удаление дубликатов, неиспользуемых функций
и т.д. и т.п.
И при этом нужно заметить, что "noexcept" нужен не только компилятору,
но и разработчику, чтобы понять являются ли исключения частью "контракта" или нет.
M>— можно писать в удобном стиле, когда деларация и имплементация сразу
Ну так можно писать и в случае разбития на несколько файлов.
Реализованные прямо в объявлении класса члены-функции по умолчанию считаются
"inline" и можно cделать "#include" без проблем в несколько единиц трансляции без проблем,
накаких ошибок линковки не будет и все будет работать правильно.
Правда субъективно такой код читать сложнее, нельзя охватить разом интерфейс который предоставляет класс,
так как интерфейс прячется за реализацией.