gpt4 book ai didi

c++ - 奇怪的 c++ 结构

转载 作者:太空宇宙 更新时间:2023-11-04 15:02:25 25 4
gpt4 key购买 nike

我想为自己编译 openttd 源代码。它使用的是 Squirell 库,由于链接器错误我无法编译。我查看了无法编译的代码,看到了我(和链接器 :D)无法理解的奇怪结构:

new ((void *)&_vals[i]) T(v._vals[i]);

Whole source code(line 41)

我修改了代码,现在看起来像这样:

_vals[i] = *(new  T(v._vals[i]));

我不知道我是否以良好的方式修改了代码。我希望我做到了。游戏现在没有崩溃,所以它可能运行良好。

有人能说说为什么这个构造没有做任何编译时错误,只是链接器错误吗?这段代码到底在做什么?

重要信息:我使用的是 visual studio 2013。

最佳答案

这是标准的placement new .你可能错过了

#include <new>

关于c++ - 奇怪的 c++ 结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28886662/

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