MSTL 1.4.0
A Modern C++ Library with extended functionality, web components, and utility libraries
载入中...
搜索中...
未找到
ini_builder.hpp
1#ifndef MSTL_CORE_FILE_INI_INI_BUILDER_HPP__
2#define MSTL_CORE_FILE_INI_INI_BUILDER_HPP__
4#include "ini_value.hpp"
6
7class MSTL_API ini_builder {
8private:
9 unique_ptr<ini_document> root_;
10 ini_section* current_section_ = nullptr;
11 string current_key_;
12
13 void test_exception() const;
14
15public:
16 ini_builder();
17 ini_builder(const ini_builder&) = delete;
18 ini_builder& operator =(const ini_builder&) = delete;
19 ini_builder(ini_builder&&) = default;
20 ini_builder& operator =(ini_builder&&) = default;
21
22 ini_builder& begin_section(const string& section_name);
23 ini_builder& end_section();
24
25 ini_builder& key(const string& k);
26
27 ini_builder& value(const string& v);
28 ini_builder& value(const char* v) { return value(string(v)); }
29 ini_builder& value(const string_view v) { return value(string(v)); }
30
31 ini_builder& value(int v);
32 ini_builder& value(int64_t v);
33 ini_builder& value(double v);
34 ini_builder& value(bool v);
35
36 ini_builder& value(double v, int precision);
37
38 ini_builder& value_section(const string& section_name,
39 _MSTL function<void(ini_builder&)>&& build_func);
40
41 unique_ptr<ini_document> build();
42};
43
45#endif // MSTL_CORE_FILE_INI_INI_BUILDER_HPP__
MSTL通用函数包装器
long long int64_t
64位有符号整数类型
#define _MSTL
全局命名空间MSTL前缀
#define MSTL_END_NAMESPACE__
结束全局命名空间MSTL
#define MSTL_BEGIN_NAMESPACE__
开始全局命名空间MSTL