Size: a a a

2020 July 22

t

tamtakoe in supapro.cxx
Это под капотом происходит
источник

AF

Aidar Fattakhov in supapro.cxx
tamtakoe
Это под капотом происходит
Я почти уверен что в любом жсоне должны быть целые типы, в том числе в том который возвращает нода
источник

D

Dmitriy in supapro.cxx
Aidar Fattakhov
Напиши блин тип JsonValue
Вроде так чаще всего и делают
Я для jsona использовал
class Node : variant<bool,
Number,
string,
vector<Node>,
map<string, Node>
>
Number - класс, способный хранить целую и дробную части в виде двух uint64_t, длину дробной части и знак "-"
источник

s

std::slavik in supapro.cxx
tamtakoe
В JS нет разграничения по int, double и проч. и числа в данных не будут гигантскими, и кроме операции сложения ничего не будет, так что double за глаза хватит
смотря что с чем складывать) просто регулярно приходится ликбезы делать на тему "что такое плавающая точка", так вот ктонить посчитает что вроде бы сойдет при текущих условиях, а потом через полгода ктонить поверх этого еще ченить напишет и условия поменяются
источник

AF

Aidar Fattakhov in supapro.cxx
Dmitriy
Вроде так чаще всего и делают
Я для jsona использовал
class Node : variant<bool,
Number,
string,
vector<Node>,
map<string, Node>
>
Number - класс, способный хранить целую и дробную части в виде двух uint64_t, длину дробной части и знак "-"
Да но ты не можешь наследоваться от std
источник

D

Dmitriy in supapro.cxx
Aidar Fattakhov
Да но ты не можешь наследоваться от std
Идея наследования от варианта честно подсмотрена у Яндекса :)
источник

t

tamtakoe in supapro.cxx
Dmitriy
Вроде так чаще всего и делают
Я для jsona использовал
class Node : variant<bool,
Number,
string,
vector<Node>,
map<string, Node>
>
Number - класс, способный хранить целую и дробную части в виде двух uint64_t, длину дробной части и знак "-"
источник

AF

Aidar Fattakhov in supapro.cxx
Aidar Fattakhov
Да но ты не можешь наследоваться от std
Тут как раз форвард декларейшн
источник

D

Dmitriy in supapro.cxx
Это js, я про С++🙂
источник

t

tamtakoe in supapro.cxx
std::slavik
смотря что с чем складывать) просто регулярно приходится ликбезы делать на тему "что такое плавающая точка", так вот ктонить посчитает что вроде бы сойдет при текущих условиях, а потом через полгода ктонить поверх этого еще ченить напишет и условия поменяются
Если нужны ликбезы, значит JS не по назначению используют. Никто там ничего вычисляет особо, а при выводе в UI результат всегда нужно форматировать (убирать лишние знаки и проч.) Так что знать как там плавающая точка работает совсем не обязательно)
источник

s

std::slavik in supapro.cxx
Aidar Fattakhov
Я почти уверен что в любом жсоне должны быть целые типы, в том числе в том который возвращает нода
они по стандарту есть - либо целые, либо с плавающей точкой
источник

s

std::slavik in supapro.cxx
tamtakoe
Если нужны ликбезы, значит JS не по назначению используют. Никто там ничего вычисляет особо, а при выводе в UI результат всегда нужно форматировать (убирать лишние знаки и проч.) Так что знать как там плавающая точка работает совсем не обязательно)
что тогда ты делаешь в C++ чате)
источник

t

tamtakoe in supapro.cxx
Dmitriy
Это js, я про С++🙂
Это как раз C++ обертки)
источник

t

tamtakoe in supapro.cxx
std::slavik
что тогда ты делаешь в C++ чате)
Пишу на модуль для ноды на Си++)
источник

s

std::slavik in supapro.cxx
а чем знакомство с flatbuffers закончилось в итоге?
источник

s

std::slavik in supapro.cxx
я все еще не понимаю зачем писать код когда его можно сгенерировать
источник

s

std::slavik in supapro.cxx
у меня просто сейчас что-то похожее происходит, ток на микроконтроллере - модель нейронки обученная на серваке конвертится в tensorflow lite бинарник - это по сути flatbuffers и есть, этот бинарник микроконтроллер без аллокации доп памяти считывает и получает готовый плюсовый объект stl like, типы в котором кастятся в stl типы, всякие енамы, итераторы, строки, векторы и тд есть. Далее эта моделька скармливается uPython интерпретатору, который собственно нейронку выполняет.
источник

s

std::slavik in supapro.cxx
Плюс к этому есть js интерпретатор рядом и на серваке тоже js - серверная часть в редакторе формирует сценарий с кучей узлов, условий перехода, вариантов и разными данными, это все запаковывается в json/бинарник и скармливается опять же на контроллере в C++ stl структуру данных, по которой может как C++ код ходить, так и можно ее скормить js интерпретатору и он по этому сценарию тоже ходить может
источник

s

std::slavik in supapro.cxx
при этом ничего не аллоцируется дополнительно - этот объект в одном месте в памяти лежит, ничего не копируется
источник

s

std::slavik in supapro.cxx
короче если задача в том чтобы один и тот же объект мог парситься и в js и в C++ и во все остальное - проще либо один раз написать схему .proto и работать с flatbuffers, либо если схема неприемлема - можно и без нее просто через json
источник