Size: a a a

2020 November 20

DF

Dollar Føølish in pro.cxx
А вот если создал ссылку...
источник

AN

Alexander N in pro.cxx
Побитый Кирпич
Создал объект, на след. строке вызвал метод. Думаю компилятор допрёт что к чему
Если так, то да, а если объект передаётся по указателю на базовый класс или вообще на базовый класс, который посередине, а метод есть у его базы. И ещё есть множественное наследование
источник

ПК

Побитый Кирпич... in pro.cxx
Alexander N
Если так, то да, а если объект передаётся по указателю на базовый класс или вообще на базовый класс, который посередине, а метод есть у его базы. И ещё есть множественное наследование
Ну дак если есть доказуха, что передан конкретный объект, то будет девиртуализация
источник
2020 November 21

W

Wild_Wind in pro.cxx
Alexander N
При каких условиях происходит девиртуализация вызовов?
Когда собираешь с межмодульной оптимизацией. Тогда шансы есть.
-flto -fdevirtualize-at-ltrans

На гцц изредка работало. Как на кланге - хз.
источник

AN

Alexander N in pro.cxx
Wild_Wind
Когда собираешь с межмодульной оптимизацией. Тогда шансы есть.
-flto -fdevirtualize-at-ltrans

На гцц изредка работало. Как на кланге - хз.
То есть это уже на этапе линковки получается?
источник

Q

QORBY in pro.cxx
Здравствуйте,  правильно ли я начал изучать C++ с книги Бьерна Страуструпа "Язык программирования C++. Специальное издание"? Или все же лучше начать с "Программирование на C++ в примерах и задачах | Васильев Алексей Николаевич"?
источник

P

Pepe 🐸 in pro.cxx
QORBY
Здравствуйте,  правильно ли я начал изучать C++ с книги Бьерна Страуструпа "Язык программирования C++. Специальное издание"? Или все же лучше начать с "Программирование на C++ в примерах и задачах | Васильев Алексей Николаевич"?
есть supapro для новичков и нет, программирование лучше изучать что то делая, советую курс яндекса
источник

Q

QORBY in pro.cxx
Pepe 🐸
есть supapro для новичков и нет, программирование лучше изучать что то делая, советую курс яндекса
Как раз начал его проходит. Вы про курс на Степике?
источник

P

Pepe 🐸 in pro.cxx
QORBY
Как раз начал его проходит. Вы про курс на Степике?
икусство программирования на С++ на курсере (но может на степике то же я не знаю)
источник

Q

QORBY in pro.cxx
Pepe 🐸
есть supapro для новичков и нет, программирование лучше изучать что то делая, советую курс яндекса
Начну проходить курс на курсере, спасибо огромное. А то прочитал первые 120 страниц книги и ничегошеньки не понял
источник

K

Kirill in pro.cxx
Pepe 🐸
икусство программирования на С++ на курсере (но может на степике то же я не знаю)
Не степике от computer science center
источник

K

Kirill in pro.cxx
Тоже хороший, главное бесплатный
источник

W

Wild_Wind in pro.cxx
Alexander N
То есть это уже на этапе линковки получается?
Да, но чтобы по нормальному, надо собирать и либы с lto.
Он их тогда чутка инструментирует и на основе этой инструментации кода оптимизирует.
А если без межмодульной, то девертуализация возможна по нормальному лишь в случае, если все виртуальные вызовы видны, и если реализация интефейса помечена как final.
источник

Q

QORBY in pro.cxx
Pepe 🐸
икусство программирования на С++ на курсере (но может на степике то же я не знаю)
А на курсере после пробного периода надо платить 6к в месяц или я что-то не понял?
источник

W

Wild_Wind in pro.cxx
Wild_Wind
Когда собираешь с межмодульной оптимизацией. Тогда шансы есть.
-flto -fdevirtualize-at-ltrans

На гцц изредка работало. Как на кланге - хз.
А, точно. У gcc оно так.
А у кланга, при lto, он не до конца собирает в бинарный объектный файл, а в ir. И уже во время lto дорабатывает напильником.

Из-за этого, кланговская межмодульная чутка получше. Но они не совместимы.
Т.е. если ты собрал либу с lto клангом, и после юзаешь её, с lto гцц, то лто будет менее эффективен и может вообще не собраться (пару раз бывало, линкер ругался на непонятный формат).
источник

AN

Alexander N in pro.cxx
Wild_Wind
А, точно. У gcc оно так.
А у кланга, при lto, он не до конца собирает в бинарный объектный файл, а в ir. И уже во время lto дорабатывает напильником.

Из-за этого, кланговская межмодульная чутка получше. Но они не совместимы.
Т.е. если ты собрал либу с lto клангом, и после юзаешь её, с lto гцц, то лто будет менее эффективен и может вообще не собраться (пару раз бывало, линкер ругался на непонятный формат).
У llvm есть же такая штука как lto через плагины например gold
источник

DF

Dollar Føølish in pro.cxx
Он об этом и говорит
источник

DF

Dollar Føølish in pro.cxx
Плагин обрабатывает биткод
источник

W

Wild_Wind in pro.cxx
Alexander N
У llvm есть же такая штука как lto через плагины например gold
С llvm/clang лучше lld использовать.
источник

DF

Dollar Føølish in pro.cxx
Даже на линуксе?
источник