无法从const TiXmlString转换为const std :: string&

时间:2016-04-15 13:11:01

标签: c++ c++11 stl sdl tinyxml

我愿意用SDL制作2D游戏,我正在关注肖恩米切尔的书。但是在尝试编译项目时,我遇到了这个用户定义的类型转换错误的严重困难......

另外,我对这个话题不熟悉。我看过一些教程并在网上搜索解决方案。

我需要添加

吗?
operator std::string&() const { return ???;}

到TiXmlString类中的tinyxmlstr.h?如果是这样,如何实施呢?我该怎么回事?

The Errors

如果我没有在tinyxml.h中定义STL(我使用的),编译器会返回一个链接错误。

Error 19 error LNK2019: unresolved external symbol "public: virtual __cdecl TiXmlNode::~TiXmlNode(void)" (??1TiXmlNode@@UEAA@XZ) referenced in function "public: virtual __cdecl TiXmlDocument::~TiXmlDocument(void)" (??1TiXmlDocument@@UEAA@XZ)

Without STL

StateParser类和实现与本书中的相同。

最后,如果我在某处出错,如何正确调试以及在哪里查找?先感谢您!

1 个答案:

答案 0 :(得分:0)

错误很明显:从const TiXmlStringconst std::string &可以进行非转换。

根据this page,如果我没错,甚至没有从TiXmlString直接转换为std::string

我想你可以写一个这样的方法(就像返回value()的{​​{1}}一样)

const char *

但是通过这种方式,您会返回std::string valueStr () cont { return value.c_str(); } 的副本(因此返回value,而不是普通的const std::string,是无用的),而不是引用。我不知道这对你来说是否合适。