Size: a a a

AI Cups Official

2021 February 08

ЕС

Егор Сергеев... in AI Cups Official
SilentNox
Выглядит прикольно. Такой препроцессор хотелось бы ив С++  иметь.
Я нечто похожее писал недавно. Можно тут посмотреть
https://github.com/eropsergeev/JsonStructs
источник

u

ud1 in AI Cups Official
Cell/refcell/mutex - тут данные должны будут в отдельном месте в хипе лежать?
источник

VK

Vitaliy Kudasov in AI Cups Official
ud1
Cell/refcell/mutex - тут данные должны будут в отдельном месте в хипе лежать?
Вроде ни один из них хип не юзает (кроме мутекса, но не всегда, но это не точно), у Сell вообще оверхеда нет
источник

VK

Vitaliy Kudasov in AI Cups Official
Ну да, примерно то же самое, только у раста синтаксис лучше 🌚
источник

ЕС

Егор Сергеев... in AI Cups Official
Vitaliy Kudasov
Ну да, примерно то же самое, только у раста синтаксис лучше 🌚
Да, зато это на плюсах. Если бы существовал идельный лично для меня язык то в нем было бы что-то от Раста, но больше — от Плюсов
источник

u

ud1 in AI Cups Official
Чувствую, что пройдет еще несколько месяцев и весь этот чат будет на расте писать, все благодаря Кувиману
источник

VK

Vitaliy Kudasov in AI Cups Official
Зачем весь чат, я буду доволен и одним из топов )
источник

O

Opera in AI Cups Official
Vitaliy Kudasov
Зачем весь чат, я буду доволен и одним из топов )
это нужно кого то из топа завербовать?)
источник

VK

Vitaliy Kudasov in AI Cups Official
Ага, ведь топ займет топовое место и в следующий раз, и уже нельзя будет говорить что побеждают только на плюсах)
источник

u

ud1 in AI Cups Official
Надо просто в призах на писать, что если решение на расте, то приз увеличивается на 20%. А если на питоне, то наоборот -50%
источник

VK

Vitaliy Kudasov in AI Cups Official
Ну не, мы за честную конкуренцию 🌚
источник

R

Roman in AI Cups Official
Vitaliy Kudasov
json_decode возвращает нужный тип или динамическое неизвестное? Первое намного удобнее, но есть не везде, второе есть везде вроде
ну в пхп есть универсальный тип - array, никогда не испытывал необходимости создания объектов после парсинга JSON'а, многомерный массив/map покрывал все мои нужды; перейдя на Go, конечно столкнулся с тем, что надо все распихивать по своим структурам, но и сложности особой в этом процессе не увидел
источник

VK

Vitaliy Kudasov in AI Cups Official
Roman
ну в пхп есть универсальный тип - array, никогда не испытывал необходимости создания объектов после парсинга JSON'а, многомерный массив/map покрывал все мои нужды; перейдя на Go, конечно столкнулся с тем, что надо все распихивать по своим структурам, но и сложности особой в этом процессе не увидел
Если не перекладывать то нельзя быть уверенным что структура жсона та которую мы ожидаем. Там где это поддерживается автоматически есть валидация структуры присланных значений, иначе надо писать руками. Плюс, тк нет необходимости в динамической типизации, работает быстрее.
источник

e

elsid in AI Cups Official
SilentNox
Лично мне не хватает рефлексии и динамических типов довольно часто. Десериализация из жсона на С++ это боль, допустим.
Есть Boost.Hana и Boost.Fusion, которые позволяют написать универсальный сериализатор/десериализатор в любой формат. Все что нужно это объявить тип через специальный макрос или адаптировать существующий.
struct Person {
   BOOST_HANA_DEFINE_STRUCT(Person,
       (std::string, name),
       (unsigned short, age)
   );
};
namespace ns {
   struct Person {
       std::string name;
       int age;
   };
}
BOOST_HANA_ADAPT_STRUCT(ns::Person,
   name,
   age
);
источник

R

Roman in AI Cups Official
Vitaliy Kudasov
Если не перекладывать то нельзя быть уверенным что структура жсона та которую мы ожидаем. Там где это поддерживается автоматически есть валидация структуры присланных значений, иначе надо писать руками. Плюс, тк нет необходимости в динамической типизации, работает быстрее.
да понятно, что если есть гарантии, то все будет работать быстрее, но речь же про пхп ;) какие скорости :)
источник

S

SilentNox in AI Cups Official
elsid
Есть Boost.Hana и Boost.Fusion, которые позволяют написать универсальный сериализатор/десериализатор в любой формат. Все что нужно это объявить тип через специальный макрос или адаптировать существующий.
struct Person {
   BOOST_HANA_DEFINE_STRUCT(Person,
       (std::string, name),
       (unsigned short, age)
   );
};
namespace ns {
   struct Person {
       std::string name;
       int age;
   };
}
BOOST_HANA_ADAPT_STRUCT(ns::Person,
   name,
   age
);
Здесь надо вручную следить за валидностью всего этого добра
источник

VK

Vitaliy Kudasov in AI Cups Official
Roman
да понятно, что если есть гарантии, то все будет работать быстрее, но речь же про пхп ;) какие скорости :)
В пхп вроде есть опционально типизация. Типизация если не со скоростью, то поможет с простотой поддержки кода
источник

e

elsid in AI Cups Official
SilentNox
Здесь надо вручную следить за валидностью всего этого добра
Менять алгоритм разбора JSON или менять список полей в макросе. Второе гораздо лучше поддерживается.
источник

S

SilentNox in AI Cups Official
elsid
Менять алгоритм разбора JSON или менять список полей в макросе. Второе гораздо лучше поддерживается.
В идеале хочется чтобы структура сериализовалась по щелчку пальцев. На C# это можно без особых проблем изобразить, не парясь с ручным описанием полей.
источник

R

Roman in AI Cups Official
Vitaliy Kudasov
В пхп вроде есть опционально типизация. Типизация если не со скоростью, то поможет с простотой поддержки кода
классы, конечно, есть) но запихивать полученные данные из JSON'а в кучу объектов означает ещё кратно замедлить код
источник