170 похожих чатов

Const auto& foo() { return getSome(); } const auto& some =

foo();
int main() {}
где теперь будем хранить?

9 ответов

32 просмотра

ок, я понял, этот механизм будет работать только внутри одного translation unit, с раздельной компиляцией он работать не будет

Богдан
ок, я понял, этот механизм будет работать только в...

с другой стороны я и так планирую собирать проект одним translation unit (как минимум потому что у компилятора будет больше информации и он будет лучше оптимизировать код)

Богдан
с другой стороны я и так планирую собирать проект ...

Кстати мне нравится идея самособираемых проектов - когда в репозитории проекта хранится все необходимое для сборки этого проекта. Более того я считаю что компилятор вообще можно рассматривать как пользовательскую библиотеку (среди множества других используемых в проекте) - например есть главная точка входа - функция main а рядом будет лежать файлик типа build.cpp который инклудит компилятор например ligclang и собирает проект (и бинарник следующуей версии себя)

Alex.Z- Автор вопроса

Вы предлагаете внести это изменение в язык из-за проекта, который вы хотите собирать одним TU? Поправьте, если я ошибаюсь.

Alex.Z
Вы предлагаете внести это изменение в язык из-за п...

Никаких изменений в язык добавляться не будет - по стандарту dangling references это UB а я всего лишь хочу настроить этот ub внутри компилятора так чтобы оно работало чуть по другому. Да, для того чтобы оно работало через несколько translation units нужно будет менять abi но вроде как abi не является частью стандарта языка (поправьте если я ошибаюсь)

Богдан
Никаких изменений в язык добавляться не будет - по...

Вместо того, чтобы пытаться менять компилятор, лучше бы понять, почему такой код писать не надо.

Dmitriy [Отпуск]
А как именно менять ABI?))

А как сейчас в abi работает copy elision? Раньше это была внутренняя оптимизация компилятора но в стандарте с++17 появилось требование не вызвать конструктор и деструктор для промежуточных объектов в случае RVO и RNVO. Что происходит если эти функции находтся в нескольких traslation units? Наверняка в abi для этого добавили какие-то дополнительные слоты для скрытых указателей по которым создаются объекты (и передаются без копирования) иначе тогда компиляторы не смогли бы поддерживать этот стандарт

Богдан
А как сейчас в abi работает copy elision? Раньше э...

Как и раньше для передачи объектов, которые не умещаются в GPR: через неявный указатель в RCX/RDI

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта