C ++自动用于类型和非类型模板

fra*_*sco 0 c++ templates language-lawyer c++20

在c ++ 17中,template <auto>允许使用任意类型参数声明模板。通过部分灵感这个问题,这将是非常有用的的扩展template <auto>来捕捉类型和无类型模板参数,并且还允许它的可变参数版本。

在下一个c ++ 20版本中是否有计划进行此类扩展?template<auto... X>使用X任何类型或非类型模板参数的语法,是否存在一些基本问题?

Bar*_*rry 5

在下一个c ++ 20版本中是否有计划进行此类扩展?

没有。

template<auto... X>使用X任何类型或非类型模板参数的语法,是否存在一些基本问题?

这将是在语言的一个全新的概念-有一个名字是指任何类型在同一个地方的值。因此,它会附带各种其他问题-可能还会包含其他语言功能,以检查是否X为类型。

语法可能无法template <auto... X> struct Y { };自认为已经语法意义已经和手段一堆值的和Y<int>{}是病态的。

当然,在某些地方,这样的事情会有用。一项提案只需要解决这些问题。

  • @texasbruce:正确的语法是`auto &lt;auto&gt; auto {auto};`。但是,我相信,我们应该通过使用`car &lt;car&gt; car {car};`来使C ++不再那么冗长。有人会不会想到键盘吗? (2认同)