1#ifndef MSTL_CORE_FILE_INI_INI_BUILDER_HPP__
2#define MSTL_CORE_FILE_INI_INI_BUILDER_HPP__
4#include "ini_value.hpp"
7class MSTL_API ini_builder {
9 unique_ptr<ini_document> root_;
10 ini_section* current_section_ =
nullptr;
13 void test_exception()
const;
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;
22 ini_builder& begin_section(
const string& section_name);
23 ini_builder& end_section();
25 ini_builder& key(
const string& k);
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)); }
31 ini_builder& value(
int v);
33 ini_builder& value(
double v);
34 ini_builder& value(
bool v);
36 ini_builder& value(
double v,
int precision);
38 ini_builder& value_section(
const string& section_name,
39 _MSTL function<
void(ini_builder&)>&& build_func);
41 unique_ptr<ini_document> build();
long long int64_t
64位有符号整数类型
#define _MSTL
全局命名空间MSTL前缀
#define MSTL_END_NAMESPACE__
结束全局命名空间MSTL
#define MSTL_BEGIN_NAMESPACE__
开始全局命名空间MSTL