gpt4 book ai didi

c++ - 从 SAX 解析器事件填充 C++ POD 结构

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

我正在尝试使用 What’s the best use you’ve had with pointer to members and member functions? 下给出的 StructSerlialiser 代码填充 FieldBinderList 后,如何使用基类列表访问指向成员的指针?如果我想使用从 XML 文件读取的值来设置该字段,我需要这样做。

最佳答案

当创建一个 StructSeriliser 时,它会传递一个对应的对象实例,并为每个字段创建序列化器:

StructSerialiser (T* data)
: SerialiserData (data)
{
if (fieldBinderList_.empty ())
Serialiser<T>::initialise ();

typedef FieldBinderList::const_iterator Iter;
for ( Iter iter = fieldBinderList_.begin ()
; iter != fieldBinderList_.end ()
; ++iter
)
{
serialisers_.push_back
( SerialiserEntry
( (*iter)->tags_
, (*iter)->createSerialiser (*data)
)
);
}
}

然后,当向序列化器传递一个开始元素时,它将它传递给下一个适当的字段序列化器。

老实说,原始代码片段本身并不打算使用。仅该类的完整代码就超过 500 行,并且还有用于基元、可选和选择的序列化程序。

关于c++ - 从 SAX 解析器事件填充 C++ POD 结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/936624/

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