HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 01.05.2023, 18:41
Receiver
Постоянный
Регистрация: 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.: Библиотека создаёт глобальную переменную
Код:
config::instance
, она нужна для автоматического добавления переменных на хранение.
 
Ответить с цитированием

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

Репутация: 98
По умолчанию

 
Ответить с цитированием

  #3  
Старый 02.05.2023, 04:10
kin4stat
Флудер
Регистрация: 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

(
)
;


Или ты решил велосипед заново изобрести?
 
Ответить с цитированием

  #4  
Старый 02.05.2023, 09:32
Receiver
Постоянный
Регистрация: 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 переменных сохранял одновременно.
 
Ответить с цитированием

  #5  
Старый 02.05.2023, 09:55
kin4stat
Флудер
Регистрация: 06.11.2017
Сообщений: 2,759
С нами: 4483143

Репутация: 183


По умолчанию

Цитата:
Сообщение от Receiver  

Вот этим дефайнчиком можно себе код засрать жёстко.
Разбей на структуры отдельный части, и дефайни структуры отдельно, оно же рекурсивно работает…
 
Ответить с цитированием

  #6  
Старый 02.05.2023, 10:32
Receiver
Постоянный
Регистрация: 26.03.2016
Сообщений: 660
С нами: 5332594

Репутация: 163


По умолчанию

Цитата:
Сообщение от kin4stat  

Разбей на структуры отдельный части, и дефайни структуры отдельно, оно же рекурсивно работает…
Слух, если ты так много знаешь... Подскажи как в msgpack рекурсивно структуры сериализовывать?
 
Ответить с цитированием

  #7  
Старый 02.05.2023, 10:33
kin4stat
Флудер
Регистрация: 06.11.2017
Сообщений: 2,759
С нами: 4483143

Репутация: 183


По умолчанию

Цитата:
Сообщение от Receiver  

Слух, если ты так много знаешь... Подскажи как в msgpack рекурсивно структуры сериализовывать?
Взять protobuf
 
Ответить с цитированием

  #8  
Старый 02.05.2023, 12:24
Receiver
Постоянный
Регистрация: 26.03.2016
Сообщений: 660
С нами: 5332594

Репутация: 163


По умолчанию

Цитата:
Сообщение от kin4stat  

Взять protobuf
Да пошёл ты со своим protobuf) gRPC это накидывание говна на вентилятор
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.