Size: a a a

cxx.Дискуссионная

2020 April 06

Е

Егор in cxx.Дискуссионная
Александр Караев
хорошо, зачем тебе magic_get в этой задаче?
по структуре проитерироваться
источник

АК

Александр Караев... in cxx.Дискуссионная
тебе нужен маппинг полей в их имена, это решается только макросами, а значит в них же сразу можно встроить эквивалент magic_get'а
источник

Е

Егор in cxx.Дискуссионная
а сериализовать то как
источник

АК

Александр Караев... in cxx.Дискуссионная
template <class Visitor>
void visit(Visitor&& v, const User& user) {
 v(user.name, "name");
 v(user.id, "id");
 ...
}


json j;
visit([&j](const auto& field, std::string_view name) { j[name] = field; }, User{});
источник

EP

Egor Pugin in cxx.Дискуссионная
Егор
а сериализовать то как
генератором из схемы генерить
источник

EP

Egor Pugin in cxx.Дискуссионная
вот это всё генерить
источник

АК

Александр Караев... in cxx.Дискуссионная
Александр Караев
template <class Visitor>
void visit(Visitor&& v, const User& user) {
 v(user.name, "name");
 v(user.id, "id");
 ...
}


json j;
visit([&j](const auto& field, std::string_view name) { j[name] = field; }, User{});
чуть модифицировать на pointer to member и вообще супер
источник

Е

Егор in cxx.Дискуссионная
Александр Караев
template <class Visitor>
void visit(Visitor&& v, const User& user) {
 v(user.name, "name");
 v(user.id, "id");
 ...
}


json j;
visit([&j](const auto& field, std::string_view name) { j[name] = field; }, User{});
ну ладно, а чем это лучше текущего то?
источник

АК

Александр Караев... in cxx.Дискуссионная
Егор
ну ладно, а чем это лучше текущего то?
ты не заставляешь страдать компилятор от лупхола
источник

Е

Егор in cxx.Дискуссионная
Александр Караев
ты не заставляешь страдать компилятор от лупхола
в маджик гете не лупхолы уже
источник

Е

Егор in cxx.Дискуссионная
Антон говорил сделали на байндингах
источник

АК

Александр Караев... in cxx.Дискуссионная
извиняй, а к чему у тебя counter'ы?
источник

Е

Егор in cxx.Дискуссионная
специализации по номерам сделать, чтоб можно было по индексу имя получить
источник

Е

Егор in cxx.Дискуссионная
а первый вариант макроса это да, но он по идее нигде не сработает
источник

Е

Егор in cxx.Дискуссионная
__COUNTER__ во всей троице есть
источник

EP

Egor Pugin in cxx.Дискуссионная
источник

Е

Егор in cxx.Дискуссионная
а комменты руками писались?
источник

EP

Egor Pugin in cxx.Дискуссионная
нет
источник

Е

Егор in cxx.Дискуссионная
а как
источник

EP

Egor Pugin in cxx.Дискуссионная
это сгенерированный файл
источник