Добавить атрибут [[internal]] для internal linkage (подумать над названием)

Yuriy Chernyshov
Yuriy Chernyshov

Сейчас для этого применяется либо ключевое слово static (не работает для классов) и констант, либо анонимные неймспейсы (вообще неочевидно, что использование анонимного неймспейса ведёт в internal linkage.

Кроме этого анонимный неймспейс - это лишний уровень вложенности, за которым надо следить (и из-за которого нельзя свободно перемещать методы внутри файла).

3
рейтинг
1 комментарий
ilnurkh

А сейчас вообще есть аттрибуты, при выпиливании которых меняется поведение программы?

Все которые я помню ([[maybe_unused]] [[nodiscard]] например) связаны либо с "статическими проверками кода" либо с оптмизиациями.

Это же заставит аттрибут влиять существенным образом на резолвинг методов. И в частности ломает возможность корректно собирать код с аттрибутами старыми компиляторами (в текущем состоянии можно выключить проверки, компилятор заигнорит аттрибуты и всё будет ок)

ilnurkh
Обновлено 
Другие идеи
Группа создана, чтобы собирать предложения к стандарту C++, организовывать их внутренние обсуждения, помогать готовить их для отправки в комитет и защищать на общих собраниях в рабочей группе по С++ Международной организации по стандартизации (ISO).
Все предложения