Согласно stack overflow, атрибут [[noreturn]]
указывает, что функция не возвращается. Хорошо, все в порядке.Как использовать атрибут [[noreturn]] в C++?
Но я не понимаю, как использовать атрибут [[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);
}
Как использовать [[noreturn]]
атрибут в C++?
Ваш код должен работать как есть: http://coliru.stacked-crooked.com/a/a24777527dc295d3. Вы уверены, что вы установили переключатель компилятора C++ 14? –
Неправильный компилятор. Вот пример GCC: http://coliru.stacked-crooked.com/a/e5f96e643a3672b0 –