10 Declarations [dcl.dcl]

10.6 Attributes [dcl.attr]

10.6.4 Deprecated attribute [dcl.attr.deprecated]

attribute-token deprecated Могут быть использованы для имен меток и юридических лиц, использование которых по- прежнему допускается, но не рекомендуется для какой - то причине. [ Note: В частности, deprecated подходит для имен и организаций, которые считаются устаревшими или небезопасными. ] Он должен появляться не более одного раза в каждом . Может присутствовать и, если присутствует, то она должна иметь вид: end noteattribute-listattribute-argument-clause

( string-literal )

[ В может быть использовано для объяснения обоснования устаревания и / или предложить заменяющий объект. ]Note: string-literalattribute-argument-clauseend note

Атрибут может применяться к объявлению класса typedef-name, переменной, нестатического элемента данных, функции, пространства имен, перечисления, перечислителя или специализации шаблона.

Имя или сущность, объявленные без deprecated атрибута, позже могут быть повторно объявлены с помощью атрибута и наоборот. [ Note: Таким образом, объект, изначально объявленный без атрибута, может быть помечен как устаревший при последующем повторном объявлении. Однако после того, как объект помечен как устаревший, последующие повторные объявления не отменяют его. ] Допускаются повторные объявления с использованием разных форм атрибута (с или без или с разными ). end noteattribute-argument-clauseattribute-argument-clauses

[ Note: Реализации могут использовать deprecated атрибут для создания диагностического сообщения в случае, если программа обращается к имени или объекту, отличному от его объявления, после объявления, которое определяет атрибут. Диагностическое сообщение может включать в себя текст attribute-argument-clauseлюбого deprecated атрибута, применяемого к имени или объекту. ] end note