首頁  >  問答  >  主體

c++ - 在一个函数前面加[[noreturn]]是什么意思?

怪我咯怪我咯2764 天前960

全部回覆(1)我來回復

  • 阿神

    阿神2017-04-17 15:38:26

    這是C++11attribute specifier sequence( http://en.cppreference.com/w/... )

    關於[[noreturn]],官方解釋是

    Indicates that the function does not return.
    This attribute applies to function declarations only. The behavior is undefined if the function with this attribute actually returns.<

    用來

    specifier有助於編譯器進行指示函数永不返回(如尾遞歸等),
    也可以用於编译优化(如
    ,不加抑制编译器给出不必要的警告的話,編譯器會警告int f(); f();的回傳值被忽略)[[noreturn]] f()但是,若函數的確有回傳值,而你卻指定

    的話,這就是未定義行為了

    回覆
    0
  • 取消回覆