«ActivationsSource» не является именем класса или пространства имен - PullRequest
0 голосов
/ 20 января 2019

Я использую пространство имен для хранения постоянных переменных, на которые регулярно ссылаюсь. Кажется, нет ничего плохого, пока я не попытаюсь скомпилировать программу, тогда я получаю

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
    ...
}

Заранее спасибо, и я прошу прощения за возможное написание имен по-разному время от времени.

...