29 #include YFM_YSLib_Core_ValueNode
38 auto i(con.lower_bound({0, name}));
40 if(i == con.end() || con.key_comp()({0, name}, *i))
42 i = con.insert(i, {0, name});
49 const auto p_con(GetContainerPtr());
51 return p_con ? p_con->size() : 0;
59 return GetContainer();
71 return CheckNodes().insert(std::move(node)).second;
75 ValueNode::Remove(
const ValueNode& node)
const
77 const auto p_con(GetContainerPtr());
79 return p_con ? p_con->erase({0, node.
name}) != 0 :
false;
94 throw std::out_of_range(
"Wrong name found.");
100 const auto i(con.find(
ValueNode(0, name)));
102 return i != end(con) ? &*i :
nullptr;
109 if(name.length() > 1 && name[0] == prefix)
112 const string ss(&name[1]);
116 catch(std::invalid_argument&)
set< ValueNode > Container
const ValueNode & at(const string &) const
YF_API bool IsPrefixedIndex(const string &, char= '$')
判断字符串是否是一个指定字符和非负整数的组合。
bool Add(const ValueNode &) const
YF_API const ValueNode & AccessNode(const ValueNode::Container *, const string &)
访问容器中的节点。
YF_API const ValueNode * AccessNodePtr(const ValueNode::Container &, const string &)
访问容器中的节点指针。
#define ynothrow
YSLib 无异常抛出保证:若支持 noexcept 关键字, 指定特定的 noexcept 异常规范。
yconstfn const string & name
std::string to_string(unsigned char val)
转换为字符串。
Container Value const string name size_t GetSize() const ynothrow
const ValueNode & operator[](const ystdex::path< _tCon > &pth) const
Container & CheckNodes() const