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

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

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

9 ответов

12 просмотров

ок, я понял, этот механизм будет работать только внутри одного 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

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

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

Скажите, можно ли как-то "переместить" динамический массив из одной переменной в другую? Скажем, переместить из TList<> в TArray<>. Именно переместить, а не скопировать. Если ...
Eugene Krasnikov (ᴊɪɴ x)
37
Вот еще криповенькая штука. uMain.pas(517,3) Warning: Case statement does not handle all possible cases И ЧО? 😂
Александр (Rouse_) Багель
20
комрады, че-та лыжы не едут var tmpFont: TFont; begin tmpFont:= TFont.Create; try case rgFontColor.ItemIndex of 0: tmpFont.Color:= clWindowText; 1: tmpFo...
Ed Doc
34
.model small .stack 100h .data a db 'Hello, World!', '$' ; исходная строка b db 20 dup(?) ; строка b с запасом на максимальную длину .code main: ...
Алексей -man
3
Интересно, нет ли какого-то способа получить из dll не адрес самой метки, а адрес со смещением?
The Bird of Hermes
54
вопрос, кого посмотреть в ютубе или где почитать про указатели чтобы раз и навсегда запомнить зачем они нужны и как правильно ими пользоваться? поделитесь хорошими ресурсами, ...
-
14
М-да. Почему бы просто со stringlist не работать?
Michael Longneck
23
Is there a digital way to cut the electricity from a usb in linux? It sounds weird, but it's exactly what I need to do. I tried to simulate the unplug/replug but is not the ...
Eduard Rivas
15
Редактор листа Excel, по сути двумерный массив ячеек. Ячейка - это экземпляр класса, у нее всякие свойства, методы. Проблема в том, что количество используемых строк и колоно...
Sergey Bodrov
2
Всем привет. Подскажите пожалуйста, как решить вопрос с подсветкой синтаксиса в vscode. Уже и разные плагины установил, и пробовал пошаманить в json settings, ничего не получ...
EEv9ENN 🤖
6
Карта сайта