如何从概念中检索类型?
说我有一个概念:如何从概念中检索类型?
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