Есть две проблемы, с которыми я иногда сталкиваюсь. Одним из них является утверждение времени компиляции, а другим - заголовочный файл, который странным образом включается в несколько мест (это не мой код, поэтому я не могу исправить , не включив его странным образом. Даже если я попытался, это заняло бы слишком много часов / дней, поскольку оно глубоко внедрено), например:
class Foo
{
public:
#include "VariableDeclarations.h" // Some file that has all the variables that need to be declared
// which is also included by several other classes in the same way
};
Приведенный выше код является упрощением того, с чем я сейчас имею дело. Конечно, класс Foo занимается и другими вещами.
Теперь, если в этом случае я добавлю еще одно объявление переменной в заголовок, а файл Class Foo
не знает о типе, я получу ошибку компиляции. Чтобы это исправить, я включаю необходимые заголовки. Проблема в том, что все, что мне говорит компилятор, это "необъявленный идентификатор" , а имя файла выглядит как VariableDeclarations.h
. Я хотел бы знать, какой файл включает в себя объявления и, следовательно, не знал о типе, который я только что добавил.
То же самое происходит с утверждениями времени компиляции. У меня нет никаких указаний относительно того, какая строка / файл вызвал ошибку. Это просто дает мне ошибку (например, в математической библиотеке Eigen, я много испытывал это).