Проблемы с использованием лямбда-функций и std::function в C++ с Clang 16 [дубликат]C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Проблемы с использованием лямбда-функций и std::function в C++ с Clang 16 [дубликат]

Сообщение Anonymous »

У меня возникли проблемы с использованием лямбда-функций и std::function в C++ в моей системе. Хотя я компилирую с помощью Clang 16 и указываю -std=c++11 или -std=c++17, компилятор завершается с ошибкой, например:
• нет шаблона с именем 'function'
• ожидаемое выражение для лямбда-выражений.
Я включил и убедился, что используется правильный компилятор (/usr/bin/clang++). Несмотря на эти шаги, проблема сохраняется как в CLion, так и в VS Code.
Не могли бы вы помочь мне понять, в чем может быть дело?
c++ /Users/sharekh/Downloads/UGent/MyProject/UGent/Reeks_B/oef8.cpp -o oef8
c++ /Users/sharekh/Downloads/UGent/MyProject/UGent/Reeks_B/oef8.cpp -o oef8
/Users/sharekh/Downloads/UGent/MyProject/UGent/Reeks_B/oef8.cpp:9:39: error: no template named 'function'
9 | void vul_array(int[],int[],int[],int ,function f);
| ^
/Users/sharekh/Downloads/UGent/MyProject/UGent/Reeks_B/oef8.cpp:16:33: error: expected expression
16 | vul_array(a, b, c, GROOTTE, [](int a, int b) -> int{ return a + b; });
| ^
/Users/sharekh/Downloads/UGent/MyProject/UGent/Reeks_B/oef8.cpp:22:29: error: expected expression
22 | vul_array(a,b,c,GROOTTE,[](int a, int b) -> int{ return a * b; });
| ^
/Users/sharekh/Downloads/UGent/MyProject/UGent/Reeks_B/oef8.cpp:28:29: error: expected expression
28 | vul_array(a,b,c,GROOTTE,[](int a, int b) -> int{ return a - b; });
| ^
/Users/sharekh/Downloads/UGent/MyProject/UGent/Reeks_B/oef8.cpp:44:53: error: no template named 'function'
44 | void vul_array(int a[],int b[],int c[],int grootte, function f) {
| ^
5 errors generated.


Подробнее здесь: https://stackoverflow.com/questions/792 ... h-clang-16
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»