我已经更新到新版本的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
发布于 2021-04-09 17:42:23
所以问题出在必需子概念“可修改的”中。它需要此签名的交换功能,而以前有效的功能现在不需要:
{ a.swap( ContainerType() ) }; 如果我把它换成这个,它现在可以工作了:
{ a.swap( a ) } -> std::convertible_to<void>;完美?不太确定,因为可能arg a应该是arg b,并且在我的可修改概念中引入了另一个模板参数。
一个很大的问题仍然存在--为什么所有这些都不是C++的标准?
https://stackoverflow.com/questions/66842418
复制相似问题