The syntax of a concept in C++20(C++20中概念的语法)
本文介绍了C++20中概念的语法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何将此问题link中的要求转换为概念
我尝试了以下操作:
此概念现在应用于我的一个成员函数:
测试时:
使用clang
时,我收到未找到匹配项的错误消息,并显示一条提示:
注意:因为替换的约束表达式格式不正确:缺少 "Typename"之前的 依赖类型名称‘VECTOR<;INT,ALLOCATOR>;::VALUE_TYPE’ U::VALUE_TYPE
推荐答案
您不需要手动检查类型是否存在。如果它们不在那里,SFINAE将使您的概念以静默方式返回false
。所以:
但如果要显式检查类型,则语法如下:
您还可以将所有条件移动到requires
:
您还应该更喜欢标准的概念而不是旧的特性:
这篇关于C++20中概念的语法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!