Я помню, что с первых дней перехода между C++98 и C++11 возникали некоторые проблемы, связанные с ABI, при компоновке библиотек C++98 и C++11. (См., например, Смешивание различных стандартов C++ с GCC и ответы на этот вопрос.)
У меня есть особая ситуация, когда часть моего кода должна быть скомпилирована с помощью инструмента, который поддерживает только C++11, а другая часть использует функции C++14 и может быть скомпилирована с помощью стандартного g++, который их поддерживает. Я могу поместить каждую часть кода в свою собственную библиотеку и связать их. Но мне интересно: есть ли вообще какие-либо различия между С++ 11 и С++ 14, которые могут привести к проблемам (например, связанным с ABI)?





Смешение для gcc было решением stdc++ (даже не gcc). Они действительно несовместимы, когда вы устанавливаете макрос в другом состоянии, но вы можете смешивать C++98 с C++11 с libstdC++, если вы устанавливаете его последовательно. Например, в RedHat компилятор gcc по умолчанию устарел и не поддерживает C++11, поэтому в инструментах разработки с более новым компилятором макрос по умолчанию установлен на старый ABI, чтобы они всегда были совместимы.
Так что, если вы согласны с вашей библиотекой stdc++, нет проблем. Нет проблем на libc++, VS...
И я ответил, что проблема не в разных версиях C++, а в том, что сопровождающие libstdc++ решили сломать свой API однажды. Вы можете безопасно смешивать разные стандарты С++, если у вас есть согласованный libstdС++ (другие всегда были в порядке, AFAIK).
Ах, я как-то неправильно прочитал эту часть. Кстати, поиск всей ситуации с библиотекой stdc++ привел меня к тому, что мой вопрос на самом деле является дубликатом, которого я раньше не находил. Смотрите мой близкий голос...
Извините, если я не ясно выразился в своем вопросе. Но ситуация с С++98 была лишь аналогией и поводом для моей осторожности - я говорил о смешении С++11 и С++14, а не С++98 и С++11...