concept

concept实际上就是一种类型萃取,只不过更加便捷。在定义完一个concept后,任何一个concept就是一个bool值,0就是不满足,1就是满足,而当将其作为模板类型参数的类型的时候,就会只允许满足的进行匹配这个T。

在定义的时候可以直接用以前的类型萃取来进行赋值,或者使用stl里面定义的一些concept,另外,还可以执行定义这个concept。

1
2
3
4
template<typename T>
concept con=require(param){
some code
}

假如说这些code不会因为这个T而产生任何问题(我不知道这个问题是怎么个定义法,至少报错的肯定算是问题),那么require就会为真,否则为假。

另外,concept之间还可以合取和析取。


concept
https://lhish.github.io/project/hide/concept/
作者
lhy
发布于
2024年6月30日
许可协议