Мне было интересно, каковы последствия для компиляции класса A с одним компилятором, который не допускает множественного наследования и компиляции класса B, который его поддерживает (и класса B, полученного из класса A).C++ Отдельные компиляторы для классов (vtables)?
Я действительно не понимаю процесс связывания ... можно ли использовать оба вместе? Какие недостатки существуют для использования отдельных компиляторов в этой ситуации с помощью vtables? Было бы невозможно, чтобы код, использующий класс B, функционировал правильно?
Спасибо.
Это можно суммировать следующим образом: Каждый изготовитель компилятора может определить собственный ABI. Поскольку различия в ABI делают код из одного компилятора непригодным для другого, это делает эти процессы непригодными. Фактически использование кода, скомпилированного с одним и тем же компилятором и разными флагами, может привести к одной и той же проблеме (двоичные файлы debug и release не совместимы с некоторыми компиляторами). Поэтому технически все единицы компиляции должны быть скомпилированы с одним и тем же компилятором с использованием тех же флагов (в противном случае вы просите о проблемах). –