Evgenii
риск 5 поддерживают
Evgenii
что круто
Stanislav
this month we will celebrate 30 years since the GCC 1.0 release.
Stanislav
ух
Stanislav
🙈 невнимательность
Stanislav
https://twitter.com/whitequark/status/859618774143696896
Evgenii
Слишком тонко
Stanislav
Evgenii
почему?
потому что я не понял)
Stanislav
потому что я не понял)
коммент видимо не читал на пикче?
Stanislav
все прочитал)
т.е. тебя не смутила что вызов этой функции вызвает рейс кондишен и упс?
Evgenii
т.е. тебя не смутила что вызов этой функции вызвает рейс кондишен и упс?
вон, та же pvs studio иногда довольно критичные баги, которые просто в текущий момент не всплывают
Square
ну ее еще купить надо)
Надо сюда затащить посонов из пвс студии и раздать 5-10 ключиков
Stanislav
там пропозал только
Stanislav
и то он там давно не обновлялся
Stanislav
а так то пропозал годный
Александр
Если с ACCU есть какая-то презентация, киньте пожалуйста. Не нашел
Крылатый
Вот бы в шаблон можно было всё запихать...
Крылатый
Как аргумент...
Aleksandr
@zamazan4ik @antoshkka конст экспер алокатор работает ?
Aleksandr
а есть пруфы спрода
Aleksandr
?
babysitter
а конфа корхардовская первый раз платная? я как-то ходил со знакомыми, было бесплатно. 15 баксов не деньги конечно, но сам факт
Denis
За последние два года впервые
Denis
Теперь придётся ходить туда голодным и отъедаться на 15 бачей 😆
Александр
Интересно. Я думал, что понадобится вмешательство в компилятор
Александр
_has_ всякие же
Причем тут это? Суть в выделении памяти во время компиляции
Stanislav
Причем тут это? Суть в выделении памяти во время компиляции
тьфу, я думал про проверку доступности в компилере этой фичи
Александр
Посмотрел реализацию. А как быть, если не хватит заранее выделенного размера? Это уже похоже на костыль
Александр
Понял
Александр
размера чего?
В этом аллокаторе заранее выделяется кусок T data[N], заполняющийся постепенно. N фиксировано
Крылатый
GCC 7.1 релизнулся https://gcc.gnu.org/ml/gcc/2017-05/msg00017.html
Stanislav
Stanislav
эхехе
Крылатый
Ну сорян!)
Александр
Поменять то можно, но это получается неполноценный аллокатор - все контейнеры сразу становятся ограниченными. И ещё вопрос: я фиксирую N = 10000, использую как-то, но к концу компиляции остаётся 1 реально используемый объект. Получается, что остальные 9999 будут висеть и занимать память... где? И не будет ли накладно компилятору таскать все эти N по стеку (или где аллокатор хранит?) и т.д. при реально используемых 10-15? Я себе никак не представляю расширяемую память в компилтайме
Evgenii
Посчитать сколько надо памяти, потом аллоцировать
Александр
А если в два прохода?
А если количество выделяемой памяти зависит от элементов контейнера?
Александр
Например?
Я не совсем тебя понял. Если ты имеешь в виду забить на контекст (конкретные значения) и подсчитывать только alloc/free, то их кол-во может зависеть от контекста. Типа vec.resize(vec.front()); Поэтому за ним нужно следить. А если следить - то зачем тогда второй проход?
Artem
работа на работе, оплата деньгами
🐙 Antony
а есть пруфы спрода
В проде использовать не надо. Оно работает не так как ожидается и требует большой доработки контейнеров. Прототип предназначен для того, чтобы показать что подход жизнеспособен и немного гибче чем предложение от Давиида. Чтобы начать использовать в проде - нужно дорабатывать сам компилятор (а перед этим стоит международному комитету по С++ выбрать какой подход им нравится больше, обсудить идеи, постараться придумать решение получше и т.д.). К 2020 в лучшем случае :)
Surreal
Хоть бы читали то, что пишут, да ошибки исправляли. Аж противно. Фу, противные недоHR'ы.
🐙 Antony
Вообще-то это требование/идея пришла Давииду из прода
🐙 Antony
насколько я знаю
🐙 Antony
да и потом тоже :)
🐙 Antony
+1
Крылатый
Нифига не специфичная.
Крылатый
Крайне юзабельная!
Крылатый
Моя хотеть генерить sql.
Крылатый
Ну вот, я уже написал.
🐙 Antony
Я надеюсь что потом функционал каким-то чудом переползёт внутрь std::allocator и конструкция const std::unordered_map<std::string, something> mapping = { {foo(), bar()}, {"hello", "word"} }; Будет выполняться чисто на compile time
Крылатый
Фу какая гадость.
Крылатый
Зачем генерировать в рантайме то, что генерируется в компилтайме?
Крылатый
Не распарсил твоей мысли.
Крылатый
> генерь в рантайме > сделать без рантайма
Крылатый
wut
Крылатый
Крылатый
Отлично, обмажемся скриптами кодогенерации. Этого нам ещё не хватало.
🐙 Antony
Моя хотеть генерить sql.
Моя хотеть DSL в виде читаемого текста. Например вместо магии Boost.Spirit просто писать парсер как EBNF текст: auto parser = std::from_ebnf("some text");
Anatoly
ну, в принципе, кодогенерация не худший подход для этого
Крылатый
«И чо»?
Крылатый
И что?
Крылатый
Мне теперь не стремиться к решению?
Anatoly
стремись
Крылатый
Чтобы избавиться от ещё одной хуитки?