Open apolukhin opened 3 years ago
ilnurkh, 4 марта 2019, 13:26 А сейчас вообще есть аттрибуты, при выпиливании которых меняется поведение программы?
Все которые я помню ([[maybe_unused]] [[nodiscard]] например) связаны либо с "статическими проверками кода" либо с оптмизиациями.
Это же заставит аттрибут влиять существенным образом на резолвинг методов. И в частности ломает возможность корректно собирать код с аттрибутами старыми компиляторами (в текущем состоянии можно выключить проверки, компилятор заигнорит аттрибуты и всё будет ок)
Перенос предложения: голоса +6, -3 Автор идеи: Yuriy Chernyshov
Как адекватную и универсальную замену static / anonymous namespace
Сейчас для этого применяется либо ключевое слово static (не работает для классов) и констант, либо анонимные неймспейсы (вообще неочевидно, что использование анонимного неймспейса ведёт в internal linkage.
Кроме этого анонимный неймспейс - это лишний уровень вложенности, за которым надо следить (и из-за которого нельзя свободно перемещать методы внутри файла).