Есть личная библиотека, в которой используется древовидная структура namespace (например базовое пространство имён base_lib и вложенные в него деревья namespace). Теперь появилась необходимость дать доступ к внутренней функции доступ, например она лежит в base_lib::sys::ct::meta::some_funcl() (системная часть/компиляция/метапрограммирование). Как открыть доступ к данному компоненту, дабы можно было обратиться как base_lib::somefuncl().
Пробовал использовать using namespace, в заголовочном файле функции, но тогда помещается весь namespace для доступа, можно ли точечно перенести ?
Здравствуйте, Александр Шамин, Вы писали:
АШ>Есть личная библиотека, в которой используется древовидная структура namespace (например базовое пространство имён base_lib и вложенные в него деревья namespace). Теперь появилась необходимость дать доступ к внутренней функции доступ, например она лежит в base_lib::sys::ct::meta::some_funcl() (системная часть/компиляция/метапрограммирование). Как открыть доступ к данному компоненту, дабы можно было обратиться как base_lib::somefuncl().
АШ>Пробовал использовать using namespace, в заголовочном файле функции, но тогда помещается весь namespace для доступа, можно ли точечно перенести ?
Здравствуйте, Александр Шамин, Вы писали:
АШ>Есть личная библиотека, в которой используется древовидная структура namespace (например базовое пространство имён base_lib и вложенные в него деревья namespace). Теперь появилась необходимость дать доступ к внутренней функции доступ, например она лежит в base_lib::sys::ct::meta::some_funcl() (системная часть/компиляция/метапрограммирование). Как открыть доступ к данному компоненту, дабы можно было обратиться как base_lib::somefuncl().
АШ>Пробовал использовать using namespace, в заголовочном файле функции, но тогда помещается весь namespace для доступа, можно ли точечно перенести ?
Использовать using-объявление, вместо using-директивы.
Здравствуйте, _niko_, Вы писали:
__>Здравствуйте, Александр Шамин, Вы писали:
АШ>>Есть личная библиотека, в которой используется древовидная структура namespace (например базовое пространство имён base_lib и вложенные в него деревья namespace). Теперь появилась необходимость дать доступ к внутренней функции доступ, например она лежит в base_lib::sys::ct::meta::some_funcl() (системная часть/компиляция/метапрограммирование). Как открыть доступ к данному компоненту, дабы можно было обратиться как base_lib::somefuncl().
АШ>>Пробовал использовать using namespace, в заголовочном файле функции, но тогда помещается весь namespace для доступа, можно ли точечно перенести ?
__>Вот так: __>
__>namespace base_lib
__>{
__> using sys::ct::meta::some_funcl;
__>}
__>
Спасибо! Отлично сработало.
Re: Использование вложенных namespace и представление простого пользовательского
Здравствуйте, Александр Шамин, Вы писали:
АШ>Есть личная библиотека, в которой используется древовидная структура namespace (например базовое пространство имён base_lib и вложенные в него деревья namespace). Теперь появилась необходимость дать доступ к внутренней функции доступ, например она лежит в base_lib::sys::ct::meta::some_funcl() (системная часть/компиляция/метапрограммирование). Как открыть доступ к данному компоненту, дабы можно было обратиться как base_lib::somefuncl().
Я не знаю все условия вашей задачи, но похоже, что я бы сделал немного иначе. Завёл бы alias и пользовался им:
Здравствуйте, B0FEE664, Вы писали:
BFE>Я не знаю все условия вашей задачи, но похоже, что я бы сделал немного иначе. Завёл бы alias и пользовался им: BFE>Или так, с аббревиатурой: BFE>При таком стиле мне лично код читать легче.
Ну один подход не исключает другого. Где-то лучше так, где-то эдак, а где-то и так, и эдак.
--
Не можешь достичь желаемого — пожелай достигнутого.