 |

01.05.2023, 18:41
|
|
Постоянный
Регистрация: 26.03.2016
Сообщений: 660
С нами:
5332594
Репутация:
163
|
|
Описание: Конфигурационная система упрощающая загрузку, сохранение и использование переменных в JSON.
Исходник: https://github.com/Receiver1/json_config_system
Пример использования:
C++:
[CODE]
#include "config.hpp"
#include
#include
#include
#include
// Все переменные нужно оборачивать в класс
config
::
ConfigVariable_t
string
{
"string"
,
std
::
string
{
}
}
;
config
::
ConfigVariable_t
>
vector_of_integers
{
"vector_of_integers"
,
{
1
,
2
,
3
}
}
;
// Сужающее преобразование типов
void
print_vector
(
std
::
vector
vector
)
{
for
(
auto
&
iterator
:
vector
)
{
std
::
cout
clear
(
)
;
vector_of_integers
->
clear
(
)
;
// Загружаем конфиг из файла
config
::
instance
.
load
(
"test.config"
)
;
// Выводим загруженные переменные
std
::
cout
Доступные методы класса Config:
void load(std::string file_name)Загружает конфигурацию из файла.void save(std::string file_name)Сохраняет конфигурацию в файл.void set(std::string json)Задаёт конфигурацию из строки в формате JSON.std::string get()Отдаёт конфигурацию в формате JSON строки.void add_variable(ConfigVariableBase_t *const variable)Добавляет переменную на хранение. При использовании обёртки это делается автоматически.void set_default_path(const std::filesystem:  ath path)Устанавлиает путь до стандартнй папки с конфигурациями.
P.S.: Библиотека создаёт глобальную переменную
, она нужна для автоматического добавления переменных на хранение.
|
|
|

01.05.2023, 19:43
|
|
Участник форума
Регистрация: 08.10.2019
Сообщений: 139
С нами:
3474377
Репутация:
98
|
|
|
|
|

02.05.2023, 04:10
|
|
Флудер
Регистрация: 06.11.2017
Сообщений: 2,759
С нами:
4483143
Репутация:
183
|
|
Эээ, а зачем, если можно просто:
C++:
Код:
struct
person
{
std
::
string name
;
std
::
string address
;
int
age
;
}
;
NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE
(
person
,
name
,
address
,
age
)
person p
{
"Ivan"
,
"Moscow"
,
18
}
;
json j
=
p
;
person p2
=
j
.
get
(
)
;
Или ты решил велосипед заново изобрести?
|
|
|

02.05.2023, 09:32
|
|
Постоянный
Регистрация: 26.03.2016
Сообщений: 660
С нами:
5332594
Репутация:
163
|
|
Сообщение от kin4stat
Эээ, а зачем, если можно просто:
C++:
Код:
struct
person
{
std
::
string name
;
std
::
string address
;
int
age
;
}
;
NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE
(
person
,
name
,
address
,
age
)
person p
{
"Ivan"
,
"Moscow"
,
18
}
;
json j
=
p
;
person p2
=
j
.
get
(
)
;
Или ты решил велосипед заново изобрести?
Ты либо чорт, либо гений. Я эту хрень сделал чтобы прокидывать референсы на переменные в ImGui.
Как я до этого не додумался? Чёт только щас понял что у нас всего 2 эндпоинта - сохранение и загрузка.
Ну пусть будет альтернативной версией. Вот этим дефайнчиком можно себе код засрать жёстко.
Например я через свою штуку 1000 переменных сохранял одновременно.
|
|
|

02.05.2023, 09:55
|
|
Флудер
Регистрация: 06.11.2017
Сообщений: 2,759
С нами:
4483143
Репутация:
183
|
|
Сообщение от Receiver
Вот этим дефайнчиком можно себе код засрать жёстко.
Разбей на структуры отдельный части, и дефайни структуры отдельно, оно же рекурсивно работает…
|
|
|

02.05.2023, 10:32
|
|
Постоянный
Регистрация: 26.03.2016
Сообщений: 660
С нами:
5332594
Репутация:
163
|
|
Сообщение от kin4stat
Разбей на структуры отдельный части, и дефайни структуры отдельно, оно же рекурсивно работает…
Слух, если ты так много знаешь... Подскажи как в msgpack рекурсивно структуры сериализовывать?
|
|
|

02.05.2023, 10:33
|
|
Флудер
Регистрация: 06.11.2017
Сообщений: 2,759
С нами:
4483143
Репутация:
183
|
|
Сообщение от Receiver
Слух, если ты так много знаешь... Подскажи как в msgpack рекурсивно структуры сериализовывать?
Взять protobuf
|
|
|

02.05.2023, 12:24
|
|
Постоянный
Регистрация: 26.03.2016
Сообщений: 660
С нами:
5332594
Репутация:
163
|
|
Сообщение от kin4stat
Взять protobuf
Да пошёл ты со своим protobuf) gRPC это накидывание говна на вентилятор
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|