如何让std::array显式指定类型同时自动推导大小?
如何让编译器在显式指定std::array类型时自动推导大小?
在C++17中,编译器支持同时自动推导std::array的元素类型和数组大小,写法如下:
std::array a{1, 2, 3};
这等价于显式指定类型和大小的写法:
std::array<int, 3> a{1, 2, 3};
但如果想要仅显式指定元素类型,让编译器自动推导数组大小,理想的写法是:
std::array<uint64_t> a{1, 2, 3};
不过这种写法会触发编译错误,错误信息如下:
prog.cc:15:20: error: wrong number of template arguments (1, should be 2) 15 | std::array<uint64_t> a{1, 2, 3}; | ^
内容的提问来源于stack exchange,提问作者hanshenrik
相关产品推荐
相关产品推荐

