Например те же строки std::string едва ли скастятся в том же например C# к строкам System.String
Но ведь к ним же приводятся типы
char*
или
wchar_t*
, поэтому без проблем.
Да и свои классы тоже не знаю как экспортировать.
Если только Windows, то для этого есть COM/OLE/Active-X, а если для UNIX, то никаких классов не надо экспортировать, только функции, вообще не ясны цели, на какой ОС, для каких языков, такое впечатление что у вас и задачи реальной нет, только абстрактные фантазии об "идеальной библиотеке в вакууме".