Предположим, у меня есть три скомпилированных объекта, все они созданы одним и тем же компилятором/версией:
- A был скомпилирован со стандартом С++ 11
- B был составлен с использованием стандарта С++ 14
- C был скомпилирован со стандартом С++ 17
Для простоты предположим, что все заголовки были написаны на С++ 11, используя только конструкции, семантика которых не изменилась между всеми тремя стандартными версиями, и поэтому любые взаимозависимости были правильно выражены с включением заголовка, и компилятор не возражал.
Какие комбинации этих объектов есть и не безопасно ли ссылаться на один бинарный файл? Зачем?
EDIT: ответы на основные компиляторы (например, gcc, clang, vs++) приветствуются