gpt4 book ai didi

c++ - VC++ vector 作为默认参数

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:20:14 24 4
gpt4 key购买 nike

<分区>

我有一个问题,如果下面的短代码实际上有效:

class Foo {
public:
Foo(std::string param,
const std::vector<std::string>& vec = std::vector<std::string>({ "value 1", "value 2" }))
{}
};

这在 gcc 和 VC++ 2013 上编译时没有警告,但是当 gcc 编译的程序运行良好(在 Linux 上)时,VC++ 编译的程序在应该设置默认参数时因运行时错误而中断。

Foo foo("value"); // breaks
Foo foo("test", std::vector<std::string>({ "value", "value1" })); // runs fine

调用Foo foo("value");时的错误是:

File: f:\dd\vctools\crt\crtw32\misc\dbgdel.cpp
Line: 52

Expression: _BLOCK_TYPE_IS_VALID(pHead->nBlockUse)

谁能指出哪里出了问题?

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com