Возможно, проблема в том, что библиотеки C смешиваются с соглашениями C ++.Например:
#include <math.h>
namespace TEST {
}
Это компилируется нормально, тогда как:
namespace TEST {
#include <math.h>
}
Это создает большое количество ложных ошибок.
Просто, чтобы запутать проблему:*
#include <math.h>
namespace TEST {
#include <math.h>
}
Это также компилируется, поскольку может быть включено только один раз (в первый раз).
Следовательно, также:
#include <math.h>
namespace TEST {
#include "SomethingThatIncludesMath.h"
}
Будет работать, тогда как:
namespace TEST {
#include "SomethingThatIncludesMath.h"
}
Не будет.
Вы также можете получить аналогичные проблемы, включив заголовки C ++ в файл * .c, а не в файл * .cpp.
Я уверен, чтодругое подобное смешивание C и C ++ может привести к аналогичным проблемам.