Yayin Story Studio logo Yayin Story Studio 项目文档
回到主页 用户手册

Visindigo::Utility::GeneralConfig Class

class Visindigo::Utility::GeneralConfig

一种通用的配置数据存储结构,支持多种数据类型和嵌套结构. 详情...

头文件: #include <GeneralConfig>
自以下版本: Visindigo 0.13.0

公开类型

(自 Visindigo 0.13.0 引入) enum StringFormat { Stream, Formatted }
(自 Visindigo 0.13.0 引入) enum Type { None, Integer, Real, Bool, String, …, Null }

公开成员函数

(自 Visindigo 0.13.0 引入) GeneralConfig()
(自 Visindigo 0.13.0 引入) GeneralConfig(bool value)
(自 Visindigo 0.13.0 引入) GeneralConfig(const Visindigo::Utility::GeneralConfigList &value)
(自 Visindigo 0.13.0 引入) GeneralConfig(const Visindigo::Utility::GeneralConfigMap &value)
(自 Visindigo 0.13.0 引入) GeneralConfig(qint64 value)
(自 Visindigo 0.13.0 引入) GeneralConfig(qreal value)
(自 Visindigo 0.13.0 引入) GeneralConfig(const QString &value, bool isRef = false)
(自 Visindigo 0.13.0 引入) GeneralConfig(const Visindigo::Utility::GeneralConfig &other)
(自 Visindigo 0.13.0 引入) GeneralConfig(Visindigo::Utility::GeneralConfig &&other)
(自 Visindigo 0.13.0 引入) virtual ~GeneralConfig()
(自 Visindigo 0.13.0 引入) bool contains(const QString &key)
(自 Visindigo 0.13.0 引入) bool getBool(const QString &key = "", bool def = false, bool *ok = nullptr)
(自 Visindigo 0.13.0 引入) Visindigo::Utility::GeneralConfig *getChildNode(const QString &key)
(自 Visindigo 0.13.0 引入) QString getComment(const QString &key = "", bool *ok = nullptr, bool isHeadComment = false)
(自 Visindigo 0.13.0 引入) qint64 getInt(const QString &key = "", qint64 def = 0, bool *ok = nullptr)
(自 Visindigo 0.13.0 引入) QStringList getKeys(const QString &key = "", bool *ok = nullptr)
(自 Visindigo 0.13.0 引入) Visindigo::Utility::GeneralConfigList getList(const QString &key = "", const Visindigo::Utility::GeneralConfigList &def = {}, bool *ok = nullptr)
(自 Visindigo 0.13.0 引入) Visindigo::Utility::GeneralConfigMap getMap(const QString &key = "", const Visindigo::Utility::GeneralConfigMap &def = {}, bool *ok = nullptr)
(自 Visindigo 0.13.0 引入) Visindigo::Utility::GeneralConfig::Type getNodeType(const QString &key = "", bool refNodeGetFinalType = false)
(自 Visindigo 0.13.0 引入) qreal getReal(const QString &key = "", qreal def = 0.0, bool *ok = nullptr)
(自 Visindigo 0.13.0 引入) QString getRefNode(const QString &key = "", const QString &def = "", bool *ok = nullptr)
(自 Visindigo 0.13.0 引入) QString getString(const QString &key = "", const QString &def = "", bool *ok = nullptr)
(自 Visindigo 0.13.0 引入) bool isInt(const QString &key = "")
(自 Visindigo 0.13.0 引入) bool isList(const QString &key = "")
(自 Visindigo 0.13.0 引入) bool isMap(const QString &key = "")
(自 Visindigo 0.13.0 引入) bool isNone(const QString &key = "")
(自 Visindigo 0.13.0 引入) bool isReal(const QString &key = "")
(自 Visindigo 0.13.0 引入) bool isReference(const QString &key = "")
(自 Visindigo 0.13.0 引入) bool isString(const QString &key = "")
(自 Visindigo 0.13.0 引入) void setBool(bool value, const QString &key = "")
(自 Visindigo 0.13.0 引入) void setComment(const QString &value, const QString &key = "", bool isHeadComment = false)
(自 Visindigo 0.13.0 引入) void setDouble(double value, const QString &key = "")
(自 Visindigo 0.13.0 引入) void setInt(qint64 value, const QString &key = "")
(自 Visindigo 0.13.0 引入) void setList(const Visindigo::Utility::GeneralConfigList &value, const QString &key = "")
(自 Visindigo 0.13.0 引入) void setMap(const Visindigo::Utility::GeneralConfigMap &value, const QString &key = "")
(自 Visindigo 0.13.0 引入) void setRefNode(const QString &value, const QString &key = "")
(自 Visindigo 0.13.0 引入) void setString(const QString &value, const QString &key = "")
(自 Visindigo 0.13.0 引入) Visindigo::Utility::GeneralConfig &operator=(Visindigo::Utility::GeneralConfig &&other)

静态公开成员

(自 Visindigo 0.13.0 引入) Visindigo::Utility::GeneralConfig *copyFrom(Visindigo::Utility::GeneralConfig *other)

详细说明

Warning: GeneralConfig类的设计和实现仍在初期阶段,未来可能会有较大的改动,请谨慎使用。

GeneralConfig类用于存储和管理各种类型的配置数据。

它支持整数、实数、布尔值、字符串、列表和映射等多种数据类型,并允许嵌套使用这些类型来构建复杂的配置结构。 GeneralConfig类提供了方便的方法来设置和获取不同类型的数据,以及检查节点的类型和存在性。

它与Qt提供的Json相关对象有完全不同的设计理念。QtJson设施(包括Visindigo由此封装的 Visindigo::Utility::JsonConfig等)均以值类型形成树,并在内部恰当位置使用隐式内存共享。

而GeneralConfig内部则完全以指针形式形成树。这使得它们至少有如下区别:

  • 1. GeneralConfig的每一个节点明确直到其父对象和根对象都是谁,因此GeneralConfig兼容类似YAML的引用概念。
  • 2. GeneralConfig理念上不喜欢复制,因此也不提供复制和移动构造。如果使用GeneralConfig::copyFrom静态方法,则会递归地创建一个全新的树结构。 新的树结构与原树结构没有任何共享的节点。新的树结构的根节点和所有子节点的父节点均正确指向新的树结构。 而在QtJson设施中,复制和移动是非常常见的操作,只有在发生修改时才会进行实际的数据复制。
  • 3. QtJson设施不喜欢指针,因此访问深层节点的数据通常很麻烦,需要递归的拆解对象。而设置深层节点通常 也需要递归的创建中间节点。而GeneralConfig则使用指针,提供了方便的方法,可以直接通过键路径访问或创建深层节点。 不过同样的,访问深层节点的指针应该被视为弱指针,即用即弃,不应该长期保存。

我在什么时候应该使用GeneralConfig?

如果你的配置数据结构复杂,包含多种数据类型,并且需要频繁地访问和修改深层节点,GeneralConfig 相比Visindigo::Utility::JsonConfig是个更高性能的选择。它在密集写时耗时约为JsonConfig的 20~30%,在密集读时耗时约为JsonConfig的10~20%。就算不用于配置文件场景,仅用于在运行时 传递一些复杂的参数结构,GeneralConfig也是一个不错的选择。

但当前GeneralConfig配套的Json解析器(参见Visindigo::Utility::GeneralConfigParser)的性能 并不理想,在密集构造-解析-析构测试,以及密集序列化测试中的耗时均为JsonConifg的4~5倍。 因此如果你需要频繁的从Json文本加载配置,或者频繁地将配置序列化为Json文本,而不需要 频繁访问和修改深层节点,那么JsonConfig可能是更好的选择。也许未来GeneralConfigParser的性能会有所提升。

值得指出的是,虽然JsonConfig的读写性能差于GeneralConfig,但由于读写开销相比于 解析、序列化开销实在不是同一个数量级(深度为7时,JsonConfig的读开销是解析开销 的约三十分之一,GeneralConfig的读写开销是解析开销的约五百分之一),因此目前 GeneralConfig在读写上节约的开销远远少于解析/序列化时浪费的开销,总的来说暂时还是 选择JsonConfig更为合适一点。

但如果你需要在不同类型的配置存储格式之间进行转换(例如Json、YAML、XML等), 那使用GenralConfig是本框架目前的唯一解。

内存管理

虽然GeneralConfig没有使用隐式内存共享,但由于其节点均为指针形式,直接在堆上频繁通过new 分配内存的性能并不理想。因此Visindigo内部使用了一个Private类的内存池。这个池对用户完全 封闭,用户无需关心其存在与否。不过目前该池不是很完善,它不会释放任何内存给操作系统, 且每次需要申请内存时,都是按1024个Private对象的块进行分配。因此如果你的应用程序 频繁创建和销毁大量GeneralConfig节点,那么该池会长期维持一大块内存占用。这会在未来的 版本中得到改善。

成员类型文档

[since Visindigo 0.13.0] enum GeneralConfig::StringFormat

ConstantValueDescription
Visindigo::Utility::GeneralConfig::Stream0流,指满足语法的前提下,不考虑可读性,一般用于传输的输出格式。
Visindigo::Utility::GeneralConfig::Formatted1已格式化,指满足语法的前提下,最大程度考虑可读性的输出格式。

表达输出的序列化策略

这个enum 从 Visindigo 0.13.0 开始支持。

[since Visindigo 0.13.0] enum GeneralConfig::Type

ConstantValueDescription
Visindigo::Utility::GeneralConfig::None0空值
Visindigo::Utility::GeneralConfig::Integer1整数
Visindigo::Utility::GeneralConfig::Real2实数
Visindigo::Utility::GeneralConfig::Bool3布尔量
Visindigo::Utility::GeneralConfig::String4字符串
Visindigo::Utility::GeneralConfig::List5列表
Visindigo::Utility::GeneralConfig::Map6映射
Visindigo::Utility::GeneralConfig::Reference7引用
Visindigo::Utility::GeneralConfig::NumberReal数字,Real的别名
Visindigo::Utility::GeneralConfig::ArrayList数组,List的别名
Visindigo::Utility::GeneralConfig::DictMap字典,Map的别名
Visindigo::Utility::GeneralConfig::NullNone空,None的别名

表达节点的类型

这个enum 从 Visindigo 0.13.0 开始支持。

成员函数文档

[since Visindigo 0.13.0] GeneralConfig::GeneralConfig()

默认构造函数,创建一个类型为None的空节点。

这个function 从 Visindigo 0.13.0 开始支持。

[since Visindigo 0.13.0] GeneralConfig::GeneralConfig(bool value)

value 布尔值

使用布尔值构造一个节点。

这个function 从 Visindigo 0.13.0 开始支持。

[since Visindigo 0.13.0] GeneralConfig::GeneralConfig(const Visindigo::Utility::GeneralConfigList &value)

value 列表值

使用列表值构造一个节点。

这个function 从 Visindigo 0.13.0 开始支持。

[since Visindigo 0.13.0] GeneralConfig::GeneralConfig(const Visindigo::Utility::GeneralConfigMap &value)

value 映射值

使用映射值构造一个节点。

这个function 从 Visindigo 0.13.0 开始支持。

[since Visindigo 0.13.0] GeneralConfig::GeneralConfig(qint64 value)

value 整数值

使用整数值构造一个节点。

这个function 从 Visindigo 0.13.0 开始支持。

[since Visindigo 0.13.0] GeneralConfig::GeneralConfig(qreal value)

value 实数值

使用实数值构造一个节点。

这个function 从 Visindigo 0.13.0 开始支持。

[since Visindigo 0.13.0] GeneralConfig::GeneralConfig(const QString &value, bool isRef = false)

value 字符串值 isRef 是否构造一个引用节点

使用字符串值构造一个节点。如果isRef为true,则构造一个引用节点。

这个function 从 Visindigo 0.13.0 开始支持。

[since Visindigo 0.13.0] GeneralConfig::GeneralConfig(const Visindigo::Utility::GeneralConfig &other)

other 另一个GeneralConfig对象

复制构造函数,递归地复制一个GeneralConfig节点及其子节点。

这个function 从 Visindigo 0.13.0 开始支持。

[noexcept, since Visindigo 0.13.0] GeneralConfig::GeneralConfig(Visindigo::Utility::GeneralConfig &&other)

other 另一个GeneralConfig对象

移动构造函数,转移节点及其子节点的所有权。

这个function 从 Visindigo 0.13.0 开始支持。

[virtual noexcept, since Visindigo 0.13.0] GeneralConfig::~GeneralConfig()

析构函数,递归地释放节点及其子节点占用的内存。

这个function 从 Visindigo 0.13.0 开始支持。

[since Visindigo 0.13.0] bool GeneralConfig::contains(const QString &key)

key 指定键路径,使用句点分隔各级节点名称。为空字符串表示当前节点。

return 指定键路径下的节点是否存在。

这个function 从 Visindigo 0.13.0 开始支持。

[static, since Visindigo 0.13.0] Visindigo::Utility::GeneralConfig *GeneralConfig::copyFrom(Visindigo::Utility::GeneralConfig *other)

other 另一个GeneralConfig对象

静态方法,递归地复制一个GeneralConfig节点及其子节点,返回新的节点指针。

这个function 从 Visindigo 0.13.0 开始支持。

[since Visindigo 0.13.0] bool GeneralConfig::getBool(const QString &key = "", bool def = false, bool *ok = nullptr)

key 指定键路径,使用句点分隔各级节点名称。为空字符串表示当前节点。 def 默认值,当节点不存在或类型不匹配时返回该值。 ok 可选输出参数,指示操作是否成功。发生任何错误时均设置为false。

return 指定键路径下的布尔值。

如果节点不存在或类型不匹配,则返回默认值def。

这个function 从 Visindigo 0.13.0 开始支持。

[since Visindigo 0.13.0] Visindigo::Utility::GeneralConfig *GeneralConfig::getChildNode(const QString &key)

key 指定键路径,使用句点分隔各级节点名称。为空字符串表示当前节点。

return 指定键路径下的子节点指针。

如果节点不存在,则返回nullptr。

这也是个应该即用即弃的弱指针。如果有必要长期保存,请使用GeneralConfig::copyFrom方法复制对应的节点。

这个function 从 Visindigo 0.13.0 开始支持。

[since Visindigo 0.13.0] QString GeneralConfig::getComment(const QString &key = "", bool *ok = nullptr, bool isHeadComment = false)

key 指定键路径,使用句点分隔各级节点名称。为空字符串表示当前节点。 ok 可选输出参数,指示操作是否成功。发生任何错误时均设置为false。 isHeadComment 指示是否获取头注释(true)还是行内注释(false)。

return 指定键路径下节点的注释字符串。

如果节点不存在,则返回空字符串。

这个function 从 Visindigo 0.13.0 开始支持。

[since Visindigo 0.13.0] qint64 GeneralConfig::getInt(const QString &key = "", qint64 def = 0, bool *ok = nullptr)

key 指定键路径,使用句点分隔各级节点名称。为空字符串表示当前节点。 def 默认值,当节点不存在或类型不匹配时返回该值。 ok 可选输出参数,指示操作是否成功。发生任何错误时均设置为false。

return 指定键路径下的整数值。

如果节点不存在或类型不匹配,则返回默认值def。

这个function 从 Visindigo 0.13.0 开始支持。

[since Visindigo 0.13.0] QStringList GeneralConfig::getKeys(const QString &key = "", bool *ok = nullptr)

key 指定键路径,使用句点分隔各级节点名称。为空字符串表示当前节点。 ok 可选输出参数,指示操作是否成功。发生任何错误时均设置为false。

return 指定键路径下节点的所有子节点的键列表。

如果节点不存在或类型不匹配,则返回空列表。

如果类型为Map,则返回映射的所有键;如果类型为List,则返回索引字符串列表("0"、"1"等)。

这个function 从 Visindigo 0.13.0 开始支持。

[since Visindigo 0.13.0] Visindigo::Utility::GeneralConfigList GeneralConfig::getList(const QString &key = "", const Visindigo::Utility::GeneralConfigList &def = {}, bool *ok = nullptr)

key 指定键路径,使用句点分隔各级节点名称。为空字符串表示当前节点。 def 默认值,当节点不存在或类型不匹配时返回该值。 ok 可选输出参数,指示操作是否成功。发生任何错误时均设置为false。

return 指定键路径下的列表值。

如果节点不存在或类型不匹配,则返回默认值def。

请注意,不要将返回的列表值长期保存,请将其视为弱指针,即用即弃。 如果有必要长期保存,请使用GeneralConfig::copyFrom方法复制对应的节点。

这个function 从 Visindigo 0.13.0 开始支持。

[since Visindigo 0.13.0] Visindigo::Utility::GeneralConfigMap GeneralConfig::getMap(const QString &key = "", const Visindigo::Utility::GeneralConfigMap &def = {}, bool *ok = nullptr)

key 指定键路径,使用句点分隔各级节点名称。为空字符串表示当前节点。 def 默认值,当节点不存在或类型不匹配时返回该值。 ok 可选输出参数,指示操作是否成功。发生任何错误时均设置为false。

return 指定键路径下的映射值。

如果节点不存在或类型不匹配,则返回默认值def。 请注意,不要将返回的映射值长期保存,请将其视为弱指针,即用即弃。 如果有必要长期保存,请使用GeneralConfig::copyFrom方法复制对应的节点。

这个function 从 Visindigo 0.13.0 开始支持。

[since Visindigo 0.13.0] Visindigo::Utility::GeneralConfig::Type GeneralConfig::getNodeType(const QString &key = "", bool refNodeGetFinalType = false)

key 指定键路径,使用句点分隔各级节点名称。为空字符串表示当前节点。 refNodeGetFinalType 指示如果节点为引用节点,是否获取其引用目标节点的最终类型。

return 指定键路径下节点的类型。

如果节点不存在,则返回Type::None。 如果refNodeGetFinalType为true且节点为引用节点,则返回其引用目标节点的类型。

这个function 从 Visindigo 0.13.0 开始支持。

[since Visindigo 0.13.0] qreal GeneralConfig::getReal(const QString &key = "", qreal def = 0.0, bool *ok = nullptr)

key 指定键路径,使用句点分隔各级节点名称。为空字符串表示当前节点。 def 默认值,当节点不存在或类型不匹配时返回该值。 ok 可选输出参数,指示操作是否成功。发生任何错误时均设置为false。

return 指定键路径下的实数值(双浮点数)。

如果节点不存在或类型不匹配,则返回默认值def。

这个function 从 Visindigo 0.13.0 开始支持。

[since Visindigo 0.13.0] QString GeneralConfig::getRefNode(const QString &key = "", const QString &def = "", bool *ok = nullptr)

key 指定键路径,使用句点分隔各级节点名称。为空字符串表示当前节点。 def 默认值,当节点不存在或类型不匹配时返回该值。 ok 可选输出参数,指示操作是否成功。发生任何错误时均设置为false。

return 指定键路径下的引用节点的目标路径字符串值。

如果节点不存在或类型不匹配,则返回默认值def。

这个function 从 Visindigo 0.13.0 开始支持。

[since Visindigo 0.13.0] QString GeneralConfig::getString(const QString &key = "", const QString &def = "", bool *ok = nullptr)

key 指定键路径,使用句点分隔各级节点名称。为空字符串表示当前节点。 def 默认值,当节点不存在或类型不匹配时返回该值。 ok 可选输出参数,指示操作是否成功。发生任何错误时均设置为false。

return 指定键路径下的字符串值。

如果节点不存在或类型不匹配,则返回默认值def。

这个function 从 Visindigo 0.13.0 开始支持。

[since Visindigo 0.13.0] bool GeneralConfig::isInt(const QString &key = "")

key 指定键路径,使用句点分隔各级节点名称。为空字符串表示当前节点。

return 指定键路径下的节点是否为布尔类型。

这个function 从 Visindigo 0.13.0 开始支持。

[since Visindigo 0.13.0] bool GeneralConfig::isList(const QString &key = "")

key 指定键路径,使用句点分隔各级节点名称。为空字符串表示当前节点。

return 指定键路径下的节点是否为列表类型。

这个function 从 Visindigo 0.13.0 开始支持。

[since Visindigo 0.13.0] bool GeneralConfig::isMap(const QString &key = "")

key 指定键路径,使用句点分隔各级节点名称。为空字符串表示当前节点。

return 指定键路径下的节点是否为映射类型。

这个function 从 Visindigo 0.13.0 开始支持。

[since Visindigo 0.13.0] bool GeneralConfig::isNone(const QString &key = "")

key 指定键路径,使用句点分隔各级节点名称。为空字符串表示当前节点。

return 指定键路径下的节点是否为None类型。如果节点不存在,则视为None类型。

这个function 从 Visindigo 0.13.0 开始支持。

[since Visindigo 0.13.0] bool GeneralConfig::isReal(const QString &key = "")

key 指定键路径,使用句点分隔各级节点名称。为空字符串表示当前节点。

return 指定键路径下的节点是否为实数类型。

这个function 从 Visindigo 0.13.0 开始支持。

[since Visindigo 0.13.0] bool GeneralConfig::isReference(const QString &key = "")

key 指定键路径,使用句点分隔各级节点名称。为空字符串表示当前节点。

return 指定键路径下的节点是否为引用类型。

这个function 从 Visindigo 0.13.0 开始支持。

[since Visindigo 0.13.0] bool GeneralConfig::isString(const QString &key = "")

key 指定键路径,使用句点分隔各级节点名称。为空字符串表示当前节点。

return 指定键路径下的节点是否为布尔类型。

这个function 从 Visindigo 0.13.0 开始支持。

[since Visindigo 0.13.0] void GeneralConfig::setBool(bool value, const QString &key = "")

value 要设置的布尔量 key 指定键路径,使用句点分隔各级节点名称。为空字符串表示当前节点。

设置指定键路径下的布尔值。如果节点不存在,则创建新节点;如果节点已存在,则覆盖其值和类型。

这个function 从 Visindigo 0.13.0 开始支持。

[since Visindigo 0.13.0] void GeneralConfig::setComment(const QString &value, const QString &key = "", bool isHeadComment = false)

value 要设置的注释字符串 key 指定键路径,使用句点分隔各级节点名称。为空字符串表示当前节点。 isHeadComment 指示是否设置头注释(true)还是行内注释(false)。

设置指定键路径下节点的注释字符串。如果节点不存在,则创建新节点。

这个function 从 Visindigo 0.13.0 开始支持。

[since Visindigo 0.13.0] void GeneralConfig::setDouble(double value, const QString &key = "")

value 要设置的数值 key 指定键路径,使用句点分隔各级节点名称。为空字符串表示当前节点。

设置指定键路径下的实数值(双浮点数)。如果节点不存在,则创建新节点;如果节点已存在,则覆盖其值和类型。

这个function 从 Visindigo 0.13.0 开始支持。

[since Visindigo 0.13.0] void GeneralConfig::setInt(qint64 value, const QString &key = "")

value 要设置的数值 key 指定键路径,使用句点分隔各级节点名称。为空字符串表示当前节点。

设置指定键路径下的整数值。如果节点不存在,则创建新节点;如果节点已存在,则覆盖其值和类型。

这个function 从 Visindigo 0.13.0 开始支持。

另请参阅 isInt().

[since Visindigo 0.13.0] void GeneralConfig::setList(const Visindigo::Utility::GeneralConfigList &value, const QString &key = "")

value 要设置的列表 key 指定键路径,使用句点分隔各级节点名称。为空字符串表示当前节点。

设置指定键路径下的列表值。如果节点不存在,则创建新节点;如果节点已存在,则覆盖其值和类型。

此操作传入的列表被视为所有权转移,即被设置到节点后,调用者不应再使用该列表。 列表中的每一个对象的根节点指针和父节点指针均被更新为当前节点的根节点和当前节点。

这个function 从 Visindigo 0.13.0 开始支持。

另请参阅 isList().

[since Visindigo 0.13.0] void GeneralConfig::setMap(const Visindigo::Utility::GeneralConfigMap &value, const QString &key = "")

value 要设置的映射 key 指定键路径,使用句点分隔各级节点名称。为空字符串表示当前节点。

设置指定键路径下的映射值。如果节点不存在,则创建新节点;如果节点已存在,则覆盖其值和类型。

此操作传入的映射被视为所有权转移,即被设置到节点后,调用者不应再使用该映射。 映射中的每一个对象的根节点指针和父节点指针均被更新为当前节点的根节点和当前节点。

这个function 从 Visindigo 0.13.0 开始支持。

另请参阅 isMap().

[since Visindigo 0.13.0] void GeneralConfig::setRefNode(const QString &value, const QString &key = "")

value 要设置的引用目标路径字符串 key 指定键路径,使用句点分隔各级节点名称。为空字符串表示当前节点。

设置指定键路径下的引用节点的目标路径字符串值。如果节点不存在,则创建新节点;如果节点已存在,则覆盖其值和类型。

这个function 从 Visindigo 0.13.0 开始支持。

[since Visindigo 0.13.0] void GeneralConfig::setString(const QString &value, const QString &key = "")

value 要设置的字符串 key 指定键路径,使用句点分隔各级节点名称。为空字符串表示当前节点。

设置指定键路径下的字符串值。如果节点不存在,则创建新节点;如果节点已存在,则覆盖其值和类型。

这个function 从 Visindigo 0.13.0 开始支持。

另请参阅 isString().

[noexcept, since Visindigo 0.13.0] Visindigo::Utility::GeneralConfig &GeneralConfig::operator=(Visindigo::Utility::GeneralConfig &&other)

other 另一个GeneralConfig对象

移动赋值运算符,转移节点及其子节点的所有权。

这个function 从 Visindigo 0.13.0 开始支持。