У меня есть опыт работы с OCaml. Вам нужно было написать заглушку для каждой функции, которую вы хотели использовать для преобразования типов даже C int ↔ OCaml int. Связывание было болезненным. Я даже не хочу, чтобы объекты отображали объекты С++.
Как насчет других популярных языков? Всегда ли это боль?
EDIT:
Пожалуйста, избегайте дубликатов. И совместим с интерфейсами C и С++.
ИЗМЕНИТЬ 2:
Пожалуйста, будьте конкретны. "X может вызвать C" не дает слишком много информации.