我试图创建一个矢量工厂,它创建一个指定大小为1的值的向量但是没有按预期工作。
模板< size_t s>constexpr std :: vector< int>& …
运行时错误不是由于大量分配尝试,而是由于两个悬空引用。功能签名
constexpr std::vector<int>& vector_factory();
有两个问题。首先,它无法编译,因为 std::vector 没有 constexpr 构造函数。其次,您必须按值返回对象,而不是通过引用。编译器甚至应该警告你这个问题。如果您将上述内容更改为
std::vector
constexpr
std::vector<int> vector_factory() { /* As before... */ }
一切都应该按预期工作。