текущий ABI языка c++. Какие сейчас есть ABI гарантии? На сколько понимаю интерфейс например как void fn(std::string) нельзя считать переносимым ведь детали имплементации строки могут меняться.
https://habr.com/ru/post/490222/
Собственно стандарт про ABI не говорит ничего, но при сборке вы так или иначе завязываетесь на имплементацию стандартной библиотеки, и распространённые имплементации стараются его без серьёзных причин не ломать — в libstdc++, например, ABI в последний раз менялся из-за новых требований C++11 про std::basic_string и std::list. Это многим не понравилось, поэтому теперь стараются не вносить изменений, которые вынуждают имплементации обновлять ABI.
Обсуждают сегодня