При компиляции этого кода:
#include <future>
#include <iostream>
int main() {
std::future<int> result(std::async(
[](int m, int n) { return m + n; }, 2, 4));
std::cout << "from main" << std::endl;
std::cout << "from asnyc: " << result.get() << std::endl;
return 0;
}
с
clang++ -std=c++11 -stdlib=libc++ -Weverything promises2.cc -o promises2
Я получил предупреждения:
promises2.cc:6:17: warning: lambda expressions are incompatible with C++98
promises2.cc:5:29: warning: local type '(lambda at promises2.cc:6:17)' as
template argument is incompatible with C++98
Это предупреждения, но должны ли они сигнализировать о том, что может быть не так? Не лямбды предполагаемый быть несовместимым с C ++ 98? Какой сюрприз, что эти предупреждения должны сказать мне?
Задача ещё не решена.
Других решений пока нет …