Такой вопрос. Имеется динамическая библиотека, скомпилированная с использованием C++11. Имеется

исполняемый файл, скомпилированный с C++20. Является ли вызов функции из динамической библиотеки, в которую передается, например, std::vector UB?

14 ответов

19 просмотров

зависит исключительно от используемого компилятора, не от стандарта

короче можешь нарваться на одр, можешь не нарваться

feedable
короче можешь нарваться на одр, можешь не нарватьс...

И поэтому я в принципе считаю что ABI совместимость - полная херня, и если ты хочешь динамические либы - то будь добр собрать с тем же компилятором )))

Jokhar Ali
И поэтому я в принципе считаю что ABI совместимост...

если ограничится сишными интерфейсами на границе, то вполне будет хорошо

usernameak
зависит исключительно от используемого компилятора...

я думал это основная фича плюсов, что старые версии обязаны быть совместимы с новыми

Columbus Utrigas
я думал это основная фича плюсов, что старые верси...

это по исходным кодам. Компиляторы поддерживают обратную совместимость ABI только в мажорных версиях. Поэтому скорей всего std::vector, передаваемый из объектника, собранного с c++11 и c с++20 одним и тем же clang++-17, — это нормально.

Anatoliy Tomilov [Russia]
это по исходным кодам. Компиляторы поддерживают об...

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

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

ну если просто clang-ом, то наверное тоже всё нормально. Для C ABI на x64 стандартизирован няп

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

Завтсит от флагов. ЛТО билды могут ломаться даже на минорных версиях компилятора, там нужен полноценный сдк

Anatoliy Tomilov [Russia]
ну если просто clang-ом, то наверное тоже всё норм...

А С++ аби для либс++ уже определяется самой либой и её флагами, например

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

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

Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Вот еще странный косяк, подскажите как бороться. Я git clone сделал себе всего embassy и примеры там запускаю. Всё хорошо. Но вот решил в cargo.toml зависимости не как в приме...
Lukutin R2AJP
5
А в каком формате фреймы? Сам формат сейчас придумываешь, или что-то готовое нужно распарсить?
Okhsunrog
5
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Раз начали говорить про embassy, то присоединюсь со своими парой вопросов. 1) Есть ли сопоставимые аналоги для асинхронного кода в emdebbed? 2) Можно ли внутри задач embassy ...
NI_isx
6
сделал сайт, прикрутил в боте сайт, и виджет логина. как автоматически логинить пользователя в аккаунт(телеграм), при входе с бота?
Александра Чернивецкая
5
Карта сайта