2
stack overflowによれば、[[noreturn]]
属性は、関数が返されないことを指定します。 OK、それは大丈夫です。C++の[[noreturn]]属性の使い方は?
しかし、私はプログラムで[[noreturn]]
属性を使用する方法を理解していません。私はコード内で[[noreturn]]
属性を使用しようとしました。しかし、GCCコンパイラで自分のコードをコンパイルすると、エラーが発生しました。
error: expected unqualified-id before ‘[’ token
[[noreturn]] void f(int i) {
^
cp1.cpp: In function ‘int main()’:
cp1.cpp:11:6: error: ‘f’ was not declared in this scope
f(10);
私のコードはここにある:
#include <cstdlib>
[[noreturn]] void f(int i) {
if (i > 0)
throw "Received positive input";
std::exit(0);
}
int main()
{
f(10);
}
C++で[[noreturn]]
属性を使用する方法は?
コードはそのまま使用する必要があります。http://coliru.stacked-crooked.com/a/a24777527dc295d3 C++ 14コンパイラスイッチを設定してもよろしいですか? –
コンパイラが正しくありません。ここにGCCの例があります:http://coliru.stacked-crooked.com/a/e5f96e643a3672b0 –