繁体   English   中英

在没有 constexpr 的情况下初始化 std::array

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM