如何从概念中检索类型?

说我有一个概念:如何从概念中检索类型?

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;

}

回答:

Concepts TS的短形式的内置缺点是,您不能只命名概念化参数的类型名称。你必须使用decltype才能得到它。

所以,你有一个折衷:你可以避开你的实际代码具有更decltype费用明确template申报,也可以避免在明确的模板声明的费用为decltype

以上是 如何从概念中检索类型? 的全部内容, 来源链接: utcz.com/qa/266995.html

回到顶部