kitsu
class T{ void heavy_fn() { return lazy.eval(); } virtual void dependent() = 0; auto lazy = Wrapper([this] { return f(dependent())); }
kitsu
что-то тип такого
Constantine
ну этот класс очевидно не CC/MC
kitsu
ну было бы классно при copy/move менять ссылку на dependent
Constantine
скорее было бы классно данные передавать как данные
Constantine
а вычисление проводить как вычисление)
Constantine
на самом деле, нужно сделать this параметром для lazy
Constantine
вообще есть эвристика для мозга, что значениями являются T, unique_ptr<T> и shared_ptr<const T> и захват всего остального не создает замкнутую функцию
Constantine
а незамкнутую функцию нельзя кэшировать
Vsevolod
а какие проблемы при муве?
kitsu
а какие проблемы при муве?
Точно такие же, как и при копировании, указатель на объект не двигается
Vsevolod
Lazy(Lazy&& o) : value(std::move(o.value)) , func(std::move(o.func)) {}
Aidar
Lazy(Lazy&& o) : value(std::move(o.value)) , func(std::move(o.func)) {}
Только указатель хранится в func
Aidar
Но ваще да, адекватное решение - передавать this параметром
Vsevolod
так при муве лямбды мувается и ее замыкание
Vsevolod
впрочем, я не особо вникал, да и не хочу :)
Torteek
всем здравствуйте. делаю слияние json-документов в один jsonю применяю rapidjson. Получается не то, что ожидаю. У меня массив вертикальных столбиков вместо букв и цифр. Может кто-то может поделиться куском кода делающий слияние json в 1? В сети я находил код мерджа, но результат мне не дал.
Oleg
Опиши, что ты хочешь в итоге получить
Torteek
Опиши, что ты хочешь в итоге получить
дано документы в json. документы были созданы при анализе данных. теперь, чтобы мне сделать финальный отчет в виде json, мне нужно смержить все документы в 1. документов может быть и несколько единиц и несколько десятков
Oleg
Что делать с птлями с одинаковыми именами?
Oleg
Или тебе надо один жысон с кучей жысонов внутри?
Torteek
получается, что один json с кучей jsonoв внутри. при этом, если парсить их каким-нить json-парсеров, документ в итоге должен быть валидным
Oleg
Ох
Torteek
то есть не пойдет действие типа cat *.txt > final.txt
Oleg
Ну, руками сделай тогда
Torteek
руками не пойдет. только rapidjson. =)
Oleg
Руками - значит сам код напиши, а не без рапиджысон
Oleg
Цикл, в котором ты в документ добавляешь документы в качестве знаяения, а индекс в качестве ключа
Oleg
Или добпвь их в список и список в документ конвертни
Torteek
что-то такое вчера делал вчера. валится. ладно, буду дальше копать
Torteek
спасибо за советы.
Oleg
В общем, имхо, лучший вприант: загнать все документы в жысонэррей и еро потом в документ
🐙 Antony
Чат, предлагаю поржать над вот этой замечательной статьей: https://proglib.io/p/tricky-challenges-cpp/ Найдите 10 ошибок.
Спасибо, улыбнуло. Но остался главный вопрос - какие компании задают такие вопросы? Хочу расширить свой чёрный список :)
Ildar
Меня про виртуальное наследование спрашивали в Навителе
🦥Alex Fails
вот я не знаю. Мне из этого только когда-то на разраба C++ попадалось что-то с вирт функциями, но там вообще весело было: я там ответил что размер инта зависит от реализации, но мне сказали, что 4 байта, кек. дибилы, блеать
🐙 Antony
Ещё можно шокировать людей фразой, что количество бит в байте зависит от платформы :)
Berkus
и количество миллибит в бите
🐙 Antony
Но могут вызывать дурку, и придется долго оправдываться, и возможно даже купить вещественное доказательство :)
Anton
а еще были машины с троичной логикой )
Pepe 🐸
Спасибо, улыбнуло. Но остался главный вопрос - какие компании задают такие вопросы? Хочу расширить свой чёрный список :)
а первый вопрос с объявление f() и ::x это не УБ? просто не знаю определено такое или нет
Dmitry
первое f(); это прототип
🦥Alex Fails
С неявным интом
🐙 Antony
это ошибка синтаксиса в современном C++
Pepe 🐸
первое f(); это прототип
это я понял, но то что он без типов
Ildar
Мде, от таких вопросов надо точно бежать без оглядки
🦥Alex Fails
это я понял, но то что он без типов
В си отсутствие типа = инту. В с++98 это не так. Но старые компили понимают
Berkus
и байт в чаре
в чаре всегда один байт
Anton
Ровно одна - СЕТУНЬ )
я только В-3М знаю
Anton
на ней раньше АЭС работали ) и вояки с метеорологами
Berkus
я только В-3М знаю
а про нее есть где-нибудь статьи или всё очень секретно?
Matwey
Но могут вызывать дурку, и придется долго оправдываться, и возможно даже купить вещественное доказательство :)
Ну ты бы еще вспомнил тот советский компьютер с троичной логикой, как жеж его звали то
Berkus
я только В-3М знаю
https://ru.wikipedia.org/wiki/%D0%A1%D0%B5%D1%82%D1%83%D0%BD%D1%8C_(%D0%BA%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80) про сетунь вот есть в педовикии
Anton
да вот: http://www.computer-museum.ru/books/m1-m13/m4-2m_m4-3m.htm
Anton
хм, здесь двоичная пишут
Matwey
Да, да, видел его в политехническом музее в детстве
Dmitry
в чаре всегда один байт
char Smallest addressable unit of the machine that can contain basic character set. It is an integer type. Actual type can be either signed or unsigned. It contains CHAR_BIT bits.[3]
Berkus
хм, здесь двоичная пишут
но это похоже про 2М
Dmitry
CHAR_BIT – size of the char type in bits (at least 8 bits)
Berkus
CHAR_BIT – size of the char type in bits (at least 8 bits)
ага, это и есть размер байта в битах
🐙 Antony
Ну ты бы еще вспомнил тот советский компьютер с троичной логикой, как жеж его звали то
Как ни странно, до сих пор клепают устройства с количеством бит в байте не равном 8
Dmitry
машинозависимо
Dmitry
Analog Devices chose to avoid the issue by using a 32-bit char in their C compiler.
Dmitry
https://en.wikipedia.org/wiki/Super_Harvard_Architecture_Single-Chip_Computer
Крылатый
Кубиты)
Berkus
А с количеством состояний в бите не равным двум?
в трите - три, в квадрите - четыре )
Berkus
в кубите сколько угодно :P