Предполагая, что ни одна из функций из библиотеки C, которые используются кодом C ++, не имеют параметров или возвращаемых типов _Complex
, вы можете изменить файл заголовка C, окружив директиву #include <complex.h>
, а также что-либо еще взаголовок, который использует _Complex
, с директивами #ifndef __cplusplus
/ #endif
, так что код C ++ не увидит его и не будет смущен.С другой стороны, если вы абсолютно не можете изменить заголовок C, вы можете скопировать прототипы функций и все остальное, что используется кодом C ++, в новый заголовок, включенный в код C ++.
EDIT
Если вы действительно настроены на устранение неоднозначности заголовков, вы можете попробовать #include "/usr/include/complex.h"
вместо простого #include <complex.h>
, но с использованием абсолютного пути к стандартному заголовку библиотеки, как этоХорошая практика и, вероятно, не переносимая.