[英]How to retrieve type from the concept?
说我有一个概念:
template < typename Group > concept bool GGroup =
requires() { typename Group::Inner; };
在短格式中使用概念时,如何检索Inner
类型?
void doSomething(const GGroup& group)
{
// an ugly alternative
using Inner = typename std::decay_t<decltype(group)>::Inner;
//// could be something like:
// using Inner = GGroup::Inner;
// or
// using Inner = underlyingtype(GGroup)::Inner;
}
概念TS的简短形式的内置缺点是您不能仅仅命名概念化参数的类型名称。 你必须使用decltype
才能得到它。
因此,您需要权衡:您可以避免使用显式template
声明,但代价是实际代码中的更多decltype
,或者您可以避免使用decltype
而牺牲显式模板声明。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.