В смешанном проекте C / C ++ нам нужно выполнить вызов из C в функция C ++. Вызываемая функция перегружена как три отдельные функции, но мы можем игнорировать это со стороны C, мы просто выбираем наиболее подходящую и придерживаемся этой.
Вот ' s два способа сделать это: (1) написать небольшую оболочку C ++ с внешней функцией "C", которая перенаправляет вызов выбранной перегруженной функции, или (2) хакерский способ просто объявить одну функцию, из которой мы хотим вызвать C как extern "C".
Вопрос в том, есть ли недостатки (кроме кошмаров и плохой кармы) у второго варианта? Другими словами, с учетом трех перегруженных функций, одна из которых объявлена как exern «C», следует ли ожидать проблем со стороной C ++, или это хорошо определено в соответствии со стандартом?