gpt4 book ai didi

c++ - c++ builder XE3 项目中 std::string 的编译器错误

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

我正在使用 C++ Builder XE3 开发服务应用程序。如果我添加此行,我将收到 std::string 的编译器错误:

string a = string("abcd") + "xyz";

错误输出如下:

[bcc32 Error] string(141): E2285 Could not find a match for 'move<_Ty>(string)'
Full parser context
string(140): decision to instantiate: string std::string + <char,char_traits<char>,allocator<char> >(string &&,const char *)
--- Resetting parser context for instantiation...
svcmain.cpp(21): #include C:\Program Files\Embarcadero\RAD Studio\10.0\include\boost_1_39\boost\tr1\tr1\string
string(20): #include c:\program files\embarcadero\rad studio\10.0\include\../include/dinkumware/string
string(7): namespace std
string(140): parsing: string std::string + <char,char_traits<char>,allocator<char> >(string &&,const char *)

我尝试添加 #include <utility>就在#include <string>之上但仍然遇到同样的错误。相反,如果我按如下方式将该行分成两部分,它会编译而不会出错。

string a = string("abcd");
a += "xyz";

string b = string("abcd");
string a = b + "xyz";

使用此解决方法是不切实际的,因为我必须使用现有的代码,而这些代码几乎没有错误。相同的代码在其他 XE3 项目中没有错误。有什么想法可以解决这个错误吗?

最佳答案

我在另一个项目中找到了修复。将“向后兼容性”选项设置为 false 可修复该错误。您可以在 - 项目选项 -> C++ 编译器 -> 兼容性 -> 常规中找到该复选框。这最初设置为 true。

关于c++ - c++ builder XE3 项目中 std::string 的编译器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34826375/

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