Следующая программа не компилируется в g ++ 9.1 и 9.2 (с --std=c++17
):
int main()
{
auto foo = [&]() __attribute__((always_inline)) -> bool { return true; };
}
Со следующей ошибкой:
file.cpp: In lambda function:
file.cpp:3:53: error: expected '{' before '->' token
3 | auto foo = [&]() __attribute__((always_inline)) -> bool { return true; };
| ^~
file.cpp: In function 'int main()':
file.cpp:3:53: error: base operand of '->' has non-pointer type 'main()::<lambda()>'
file.cpp:3:56: error: expected unqualified-id before 'bool'
3 | auto foo = [&]() __attribute__((always_inline)) -> bool { return true; };
| ^~~~
Эта программа успешно компилируется с g ++ 4,7-8,3, а также Clang ++ от 3,5 до 9,0. Это ошибка G CC или я что-то не так делаю?