Как выносить под-пространства имён по разным файлам?
Всем привет;
Хочу написать пространство имён, а его подпространства вынести в отдельные файлы;
Имеется запись:
#ifndef SPECTRE_HPP
#define SPECTRE_HPP
namespace Spectre
{
namespace Math
{
}
}
#endif SPECTRE_HPP
Как можно перенести пространство Math в другой файл так, чтобы в самом проекте я мог подключить только Spectre.hpp и при этом иметь доступ ко всем его подпространства (Math and other)?
Например (main.cpp):
#include "spectre.hpp"
using namespace Spectre;
int main()
{
double local_pi = Math::PI;
}
Ответы (1 шт):
Автор решения: αλεχολυτ
→ Ссылка
math.h:
namespace Math {}
other.h:
namespace Other {}
spectre.h:
namespace Spectre {
#include "math.h"
#include "other.h"
}
Это если нужно иметь возможность включать math, other в другие пространства имён. Но обычно такое не требуется и при разнесении по файлам сразу указывают полностью пространства имён:
math.h:
namespace Spectre::Math {}
other.h:
namespace Spectre::Other {}
spectre.h:
#include "math.h"
#include "other.h"