Я использую пространство имен для хранения постоянных переменных, на которые регулярно ссылаюсь. Кажется, нет ничего плохого, пока я не попытаюсь скомпилировать программу, тогда я получаю
C2653: 'ActivationSource' не является именем класса или пространства имен
и
C3861: 'IdentitySource': идентификатор не найден
Мой включаемый файл выглядит следующим образом (обратите внимание, что я не использую предварительно скомпилированные заголовки):
// includes.h
#pragma once
#include "pch.h"
#include <vector>
#include <iostream>
#include <string>
#include <functional>
#include <algorithm>
#include <utility>
#include "CustomTypes.h"
#include "ActivationSource.h"
#include "ThresholdSource.h"
#include "StaticVariables.h"
...
файл, который генерирует ошибки, выглядит примерно так
// StaticVariables.h
#pragma once
#include "includes.h"
namespace activations
{
const Activation Identity = ActivationSource::IdentitySource;
...
}
и ActivationSource.h выглядит примерно так:
// ActivationSource.h
#pragma once
#include "includes.h"
namespace ActivationSource
{
float IdentitySource; // this is defined in ActivationSource.cpp
...
}
Заранее спасибо, и я прошу прощения за возможное написание имен по-разному время от времени.