Проблемы с использованием лямбда-функций и 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

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