Это продолжение к:
Как поместить некоторый код в несколько пространств имен, не дублируя этот код?
Мне нужно изменить имя пространства имен, но хочу сохранить обратную совместимость. Приведенное выше решение предполагает, что мне придется делать то, что там делается для каждой функции:
namespace NewNamespaceName
{
void print()
{
//do work...
}
// 50 other functions
}
namespace OldNameSpaceName
{
using NewNamespaceName::print;
// 50 other using declarations
}
Мой вопрос: есть ли более простой способ сделать это?
Вы можете просто сделать
namespace NewNamespaceName
{
void print()
{
//do work...
}
// 50 other functions
}
namespace OldNameSpaceName
{
using namespace NewNamespaceName;
}
Если NewNamespaceName
есть другие вещи, которые вы хотели бы включить, но не хотите, чтобы они были в OldNamespaceName
затем просто создайте другое личное пространство имен и импортируйте его в старое пространство имен
namespace NewNamespaceName
{
namespace Private {
void print() { ... }
// 50 other functions
}
}
namespace OldNameSpaceName
{
using namespace NewNamespaceName::Private;
}
Живой пример здесь https://wandbox.org/permlink/taRPm1hAd2FHbAYo
Просто используйте псевдоним пространства имен:
namespace OldNameSpaceName = NewNameSpaceName;