Я пытаюсь использовать код ниже, используя диапазоны, но он не работает.
// Code
std::map<int, std::string> m{ {1,"foo"},{42,"bar"},{7,"baz"} };
std::vector<int> keys;
// without using ranges
std::transform(begin(m), end(m), std::back_inserter(keys), [](auto val)
{
return val.first;
});
который работает нормально. Но,
// with using ranges
ranges::transform(m,std::back_inserter(keys), [](auto val)
{
return val.first;
});
он не работает с диапазонами??
Я использую MSVC 2017 15.9.14.