我有一个函数模板,它接受一个任意嵌套的列表并返回一个数组:
#include <array>
#include <initializer_list>
template<size_t N, typename List>
std::array<size_t,N> some_function (const List& list)
{
// N is the number of times the list is nested.
std::array<size_t,N> arr;
return arr;
}
当我将此函数用于某些嵌套std::initializer_list
时,如下所示:
int main () {
using List = std::initializer_list<std::initializer_list<double>>;
List list = {{1.,2.,3.},{4.,5.,6.}};
std::array<size_t,2> arr;
arr = some_function (list);
return 0;
}
我收到无法推断类型 N 的错误
无法推导出模板参数'N'</p>
问题
- 如何改进我的函数模板以推断列表嵌套的次数?
std::initializer_list
有比这种情况更好的选择吗?