Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      C attribute: maybe_unused(since C23)

      From cppreference.com
      <c‎ |language‎ |attributes
       
       
       
       
      Attributes
      maybe_unused
      (C23)
      (C23)(C23)(deprecated)
       

      Suppresses warnings on unused entities.

      Contents

      [edit]Syntax

      [[maybe_unused]]
      [[__maybe_unused__]]

      [edit]Explanation

      This attribute can appear in the declaration of the following entities:

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

      If the compiler issues warnings on unused entities, that warning is suppressed for any entity declaredmaybe_unused.

      [edit]Example

      Run this code
      #include <assert.h> [[maybe_unused]]void f([[maybe_unused]] _Bool cond1,[[maybe_unused]] _Bool cond2){[[maybe_unused]] _Bool b= cond1&& cond2;assert(b);// in release mode, assert is compiled out, and b is unused// no warning because it is declared [[maybe_unused]]}// parameters cond1 and cond2 are not used, no warning int main(void){    f(1,1);}

      [edit]See also

      C++ documentation formaybe_unused
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=c/language/attributes/maybe_unused&oldid=124539"

      [8]ページ先頭

      ©2009-2025 Movatter.jp