添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

Indicates that the name or entity declared with this attribute is deprecated , that is, the use is allowed, but discouraged for some reason.

Contents

  • 1 Syntax
  • 2 Explanation
  • 3 Example
  • 4 See also
  • [ edit ] Syntax

    text that could be used to explain the rationale for deprecation and/or to suggest a replacing entity

    [ edit ] Explanation

    Indicates that the use of the name or entity declared with this attribute is allowed, but discouraged for some reason. Compilers typically issue warnings on such uses. The string-literal , if specified, is usually included in the warnings.

    This attribute is allowed in declarations of the following names or entities:

    • struct / union : struct [ [ deprecated ] ] S ; ,
    • typedef-name : [ [ deprecated ] ] typedef S * PS ; ,
    • objects: [ [ deprecated ] ] int x ; ,
    • struct/union member: union U { [ [ deprecated ] ] int n ; } ; ,
    • function : [ [ deprecated ] ] void f ( void ) ; ,
    • enumeration : enum [ [ deprecated ] ] E { } ; ,
    • enumerator: enum { A [ [ deprecated ] ] , B [ [ deprecated ] ] = 42 } ; .

      A name declared non-deprecated may be redeclared deprecated. A name declared deprecated cannot be un-deprecated by redeclaring it without this attribute.

      [ edit ] Example

      #include <stdio.h>
      [[deprecated]]
      void TriassicPeriod(void)
          puts("Triassic Period: [251.9 - 208.5] million years ago.");
      [[deprecated("Use NeogenePeriod() instead.")]]
      void JurassicPeriod(void)
          puts("Jurassic Period: [201.3 - 152.1] million years ago.");
      [[deprecated("Use calcSomethingDifferently(int).")]]
      int calcSomething(int x)
          return x * 2;
      int main(void)
          TriassicPeriod();
          JurassicPeriod();
      

      Possible output:

      Triassic Period: [251.9 - 208.5] million years ago.
      Jurassic Period: [201.3 - 152.1] million years ago.
      prog.c:23:5: warning: 'TriassicPeriod' is deprecated [-Wdeprecated-declarations]
          TriassicPeriod();
      prog.c:3:3: note: 'TriassicPeriod' has been explicitly marked deprecated here
      [[deprecated]]
      prog.c:24:5: warning: 'JurassicPeriod' is deprecated: Use NeogenePeriod() instead. [-Wdeprecated-declarations]
          JurassicPeriod();
      prog.c:9:3: note: 'JurassicPeriod' has been explicitly marked deprecated here
      [[deprecated("Use NeogenePeriod() instead.")]]
      2 warnings generated.

      [edit] See also

    C++ documentation for deprecated
    Toolbox
  • What links here
  • Related changes
  • Upload file
  • Special pages
  • Printable version
  • Page information
    • In other languages
  • Español
  • 日本語
  • Русский
  • 中文
  •