首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >std::unordered_map的无序关联容器约束

std::unordered_map的无序关联容器约束
EN

Stack Overflow用户
提问于 2021-03-28 22:20:16
回答 1查看 37关注 0票数 1

我已经更新到新版本的visual studio 2019 (我认为是16.6->16.9),而之前正在编译的一段代码现在没有了。

我已经在下面的godbolt中复制了这个错误,但最重要的是,我已经编写了一个函数,它的参数被约束为接受std::unordered_map的参数。

这曾经有效,但现在不再有效,所有的编译器输出都是:

错误C7602:'Write':未满足关联的约束

这真的没什么用。如果有人对调试C++概念有什么建议,我们将不胜感激。

非常感谢!

带有命令行的最新VS2019 : /std:c++latest https://godbolt.org/z/WKadvn6sv

命令行的最新特性:-std=c++20 https://godbolt.org/z/Mrxoxqco9

EN

回答 1

Stack Overflow用户

发布于 2021-04-09 17:42:23

所以问题出在必需子概念“可修改的”中。它需要此签名的交换功能,而以前有效的功能现在不需要:

代码语言:javascript
复制
{ a.swap( ContainerType() ) }; 

如果我把它换成这个,它现在可以工作了:

代码语言:javascript
复制
{ a.swap( a ) } -> std::convertible_to<void>;

完美?不太确定,因为可能arg a应该是arg b,并且在我的可修改概念中引入了另一个模板参数。

一个很大的问题仍然存在--为什么所有这些都不是C++的标准?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66842418

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档