包含不是 std::map MSVC 的成员

whi*_*hoa 1 c++ dictionary visual-c++

当尝试在 Visual Studio 2017 中启用 c++ 20 功能std::map::contains()/std:c++latest时,编译器仍然无法找到 std::map 的 contains() 成员。这对于 MSVC 尚不可用还是我做错了什么?基本示例:

#include <iostream>
#include <map>

int main()
{
    std::map<int,char> example = {{1,'a'},{2,'b'}};

    if(example.contains(2)) {
        std::cout << "Found\n";
    } else {
        std::cout << "Not found\n";
    }
}
Run Code Online (Sandbox Code Playgroud)

结果是:

>main.cpp
1>c:\dev\random_cpp\random_cpp\main.cpp(11): error C2039: 'contains': is not a member of 'std::map<int,char,std::less<int>,std::allocator<std::pair<const _Kty,_Ty>>>'
1>        with
1>        [
1>            _Kty=int,
1>            _Ty=char
1>        ]
Run Code Online (Sandbox Code Playgroud)

Cor*_*mer 5

根据Microsoft C++ 语言一致性表,该方法std::map::contains仅自 VS 2019 16.1 起可用。