- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
编译我的三文件程序(main.cpp、source.cpp、header.hpp)会产生以下错误:
source.cpp: In member function ‘rapidxml::xml_document<> MyClass::generate_xml_document()’:
source.cpp:559:9: error: use of deleted function ‘rapidxml::xml_document<>::xml_document(const rapidxml::xml_document<>&)’
In file included from header.hpp:12:0,
from source.cpp:11:
rapidxml.hpp:1358:11: error: ‘rapidxml::xml_document<>::xml_document(const rapidxml::xml_document<>&)’ is implicitly deleted because the default definition would be ill-formed:
rapidxml.hpp:1322:9: error: ‘rapidxml::xml_node<Ch>::xml_node(const rapidxml::xml_node<Ch>&) [with Ch = char, rapidxml::xml_node<Ch> = rapidxml::xml_node<char>]’ is private
命名行是:
return doc;
.它是生成 rapidxml::xml_document<>
的函数的结尾.#include "rapidxml.hpp"
.rapidxml.hpp:1322 周围的区域指出:
private:
// Restrictions
// No copying
xml_node(const xml_node &);
void operator =(const xml_node &);
xml_document
: class xml_document: public xml_node<Ch>, public memory_pool<Ch>
这是rapidxml的错误吗? (我很确定不是,因为 Marcin Kalicinski 绝对是比我更好的程序员。)
最佳答案
基本上,RapidXML xml_document
类型是不可复制的。正如您发布的代码片段所示(以及注释“无复制”所暗示的),复制构造函数和赋值运算符是私有(private)的以强制编译器错误。
您应该在您的函数中动态创建一个,并返回一个指针 - 或者,使该函数将对现有 xml_document
的引用作为输入。
所以不是这个
xml_document myFunc()
{
xml_document doc;
...
return doc;
}
xml_document d = myfunc();
..你需要这个
void myFunc(xml_document &doc)
{
...
}
xml_document d;
myfunc(d);
或者,使用动态分配:
xml_document *myFunc()
{
xml_document *doc = new xml_document();
return doc;
}
xml_document d = myfunc();
...
delete d;
后者显然需要智能指针,但这表明了这个想法。
关于c++ - 编译器不让我返回 rapidxml::xml_document,并报告头文件中的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25561004/
我正在使用 RapidXML 读取 XML 文件、解析它、执行一些操作并将其写回。 标签内任何用引号书写的文本,都以扩展形式用引号打印。 是否有任何标志可以防止引号和其他特殊字符的扩展。 欢迎任何建议
今天我试图从我的项目中查找内存泄漏然后我遇到了下面的示例代码 std::string VersionValue("1.0"); std::string EncodingValue("UTF-8");
我最近一直在使用 Rapidxml 并遇到了以下问题。当我尝试添加属性时,这些属性不是硬编码的,而是在程序运行时生成的,rapidxml 插入了错误的字符。 这是我的代码示例: void Pro
我是 rapidXML 的新手,但第一印象并不积极,我制作了简单的 Visual Studio 6 C++ Hello World 应用程序并将 RapidXML hpp 文件添加到项目和 main.
ifstream fin("tree.xml"); if (fin.fail()) return 1; fin.seekg(0, ios::end); size_t lengt
我过去使用 RapidXML 时遇到了几个问题,但这个问题让我很困惑。 我正在创建应用程序事件时间戳的日志,外部程序可以在重播中读取在正确时间发生在原始应用程序中的任何音频。 在应用程序初始化时,会正
因此,我最近掌握了 RapidXML,将其用作在我的程序中解析 XML 的一种方式,我一直主要将其用作一种乱七八糟的方式,但我遇到了一些非常奇怪的问题,我真的很挣扎追查。试着和我一起解决这个问题,因为
我正在使用 RapidXML 来解析一个 xml 字符串。这是我的字符串: std::string str(" 2016-10-18T08:51:50.657+01:0000 "); 下面是我尝试解析
我试图以一种肮脏的方式使用 rapidxml 附加一个非常大的子树,利用 value 方法 rapidxml::xml_node<>* node = allocate_node(rapidxml::n
因此,在 RapidXML 中,我试图遍历我的文件以从某些 tileset 节点获取数据: rapidxml::xml_node<> *root_node = doc.first_node("map"
我正在使用 RapidXML 解析一个 xml 文件,其中包含一些我想在我的 C++ 程序中使用的变量。我能够读取有效节点,但我想添加一些错误处理,例如,如果节点名称拼写错误。 这是我的文件的一个工作
我在 PC 上的 VS2012 中使用 rapidXML 和 C++。我已经解析了 XML 文件,但现在我想单独打印出属性值。我通常可以使用下面的代码来做到这一点。但是,此方法需要知道节点名称和属性名
使用 RapidXML 我需要创建和销毁大量 XML 节点和 XML 属性。我在内存池文档中读到,没有办法使用 allocate_string 函数释放在内存池中创建的单个字符串。 但是这样内存池的大
RapidXml 的文档说 Pool maintains RAPIDXML_STATIC_POOL_SIZE bytes of statically allocated memory. Until s
我在使用 RapidXML 解析字符串时遇到了一些问题。我从 Eclipse 中收到一个错误,声称解析函数不存在。 make all Building file: ../search.cpp Invo
我有一个非常恼人的问题,我花了很多时间来解决它。我在 C++ 中使用 rapidXML 来解析 XML 文件: xml_document<> xmlin; stringstream input; //
我自己研究了 rapidXML 源代码并设法读取了一些值。现在我想更改它们并将它们保存到我的 XML 文件中: 解析文件并设置指针 void SettingsHandler::getConfigFil
我在我的一个项目中一直在使用 RapidXML。一切都很顺利,直到我决定用它来写出 xml。我的代码或多或少如下: //attempt to open the file for writing std
我正在尝试使用 C++ 应用程序中的 RapidXML 库在控制台中打印 XML 文档数据。 我正在遵循 RapidXML 手册 link here ,但我遇到了编译时错误。 这是我的 C++ 代码:
我有一个 XML 文件,我应该使用 RapidXML 和 C++ 对其进行解析。该文件是系统发育树。每个节点都有一个包含 1-3 个子节点的节点,每个子节点都有值。节点可以是学名、通用名或等级。我的问
我是一名优秀的程序员,十分优秀!