标签:c
这似乎是一个愚蠢的问题,但当我试图在SOF中查看这个答案时,
我注意到这样的陈述:
template<
typename IntType, std::size_t Cols,
IntType(*Step)(IntType),IntType Start, std::size_t ...Rs
>
constexpr auto make_integer_matrix(std::index_sequence)
{
return std::array<:array>,sizeof...(Rs)>
{{make_integer_array()...}};
}
进一步来说 :
std::size_t ...Rs
要么
std::index_sequence
什么……意味着什么?
编辑1
报告为与此问题相关的原始问题的问题不正确:
那个问题不能回答这两种情况(因为它们不是具有可变数量参数的函数)
std::size_t ...Rs
std::index_sequence
但这是一个很好的解释:
解决方法:
它被称为参数包,并引用零个或多个模板参数:
std::size_t ...Rs
是std :: size_t类型的参数包.
该类型的变量(例如Rs … my_var)可以解压缩:
my_var...
此模式大量用于转发(未知)数量的参数:
template < typename... T >
Derived( T&&... args ) : Base( std::forward< T >( args )... )
{
}
标签:c
来源: https://codeday.me/bug/20191003/1851372.html