Вообще говоря никак... ;) Компилируется у плюсов все совсем иначе. То есть если я не ошибаюсь, то честного и правильного пути сделать то, что ты пишешь - нету. В принципе можно попробовать обмануть линковщик запрашивая фенкцию по имени - как его понимает с++.
то есть если у тебя
--- q.cpp---
int g(void)
void f(int a, int b);
void f(int* pn, char* pc)
void f(string s)
-----------
то (полюбопытствуй в файле библиотеки) имена функций
q__Fv
f_Fii
f_FPiPc
f_FGt12basic_string3ZcZt18...(что дальше не помню... ;))
Сам не пробовал, по идее может и работать. Хотя может и не работать - все же по разному они и со стеком и с указателями работают...
Обертываешь ЦеППшные прототипы в extern "C" и линкуешься ЦеППшным компилером
(Цешные объектные файлы можно соорудить Це компилером => нет проблем с синтаксисом).
Конечно, в нек. смысле самообман - в результате бинарник окажется а-ля ЦеПП -
но, если шибко не злоупотреблять перегрузками, то вполне портабильно.