从C++/CX迁移到C++/WinRT时与头和名称空间相关的错误

从C++/CX迁移到C++/WinRT时与头和名称空间相关的错误,c++,windows,windows-runtime,cppwinrt,C++,Windows,Windows Runtime,Cppwinrt,文件.h: 我得到以下错误: auto it = someMap.find(someKey); if (it != someMap.end()) { it.second += (winrt::hstring{L", "} + someString.c_str()); } 我从中了解到,我们需要包含我们使用的每个名称空间的头。我假设这个错误是从那里产生的,这可能就是为什么VisualStudio不能从std::map解析到find,而是从xtree.h映射到find。

文件.h:

我得到以下错误:

auto it = someMap.find(someKey);
if (it != someMap.end()) {
    it.second += (winrt::hstring{L", "} + someString.c_str());
}
我从中了解到,我们需要包含我们使用的每个名称空间的头。我假设这个错误是从那里产生的,这可能就是为什么VisualStudio不能从std::map解析到find,而是从xtree.h映射到find。但我可能错了。我确实尝试过将std作为名称空间,但这似乎不起作用,或者至少我可能需要一些额外的东西。要解决此错误,应包含哪些标题和/或名称空间。

返回迭代器。迭代器没有第一个或第二个成员,这与映射的实际项不同。如果要访问该项,需要使用*或->运算符取消对迭代器的引用:

auto it=someMap.findsomeKey; 如果是的话!=某地{ it->second+=winrt::hstring{L,}+someString.c_str; }
auto it = someMap.find(someKey);
if (it != someMap.end()) {
    it.second += (winrt::hstring{L", "} + someString.c_str());
}
'second': is not a member of 'std::_Tree_iterator<std::_Tree_val<std::_Tree_simple_types<_Ty>>>'
    with
    [
        _Ty=std::pair<winrt::hstring,winrt::hstring>
    ]
C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.16.27023\include\xtree(778): note: see declaration of 'std::_Tree_iterator<std::_Tree_val<std::_Tree_simple_types<_Ty>>>'
    with
    [
        _Ty=std::pair<winrt::hstring,winrt::hstring>
    ]