[英]Initialize std::array without constexpr
void test(const std::size_t& x) {
std::array<std::string, x> arr;
}
当我编译上面的代码时,我得到了这个错误。
main.cpp: In function 'void test(std::size_t&)': main.cpp:15:24: error: 'x' 不是常量表达式
我怎样才能让上面的代码编译?
模板 arguments 必须始终是常量表达式,而 function 参数永远不是常量表达式。 要使此代码正常工作,您可以按照注释中的建议进行操作并改用std::vector
,或者您可以使test
function 成为模板并使x
成为模板参数而不是 function 参数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.