Именованный анонимный шаблон пространства именC++

Программы на C++. Форум разработчиков
Ответить
Гость
 Именованный анонимный шаблон пространства имен

Сообщение Гость »


Я новичок в C++, но после рефакторинга класса, который почти полностью состоял из статических методов, в функции-члены в именованном пространстве имен, я с опозданием понял, что можно добавить именованные пространства имен в анонимное, на которое затем можно ссылаться во внутренних вызовы, избегая коллизий и сохраняя их внутреннюю связь:

пространство имен MyNamespace { пространство имен { пространство имен NS { интервал у = 1; // другие внутренности... } } интервал getY(){ вернуть NS::y; } } Лично мне понравился шаблон, который побудил меня добавить макрос для большей ясности:

#define INTERNAL_NS namespace { namespace NS { #define END_INTERNAL }} пространство имен MyNamespace { ВНУТРЕННИЙ_NS интервал у = 1; // другие внутренности... END_INTERNAL интервал getY(){ вернуть NS::y; } } Это похоже на выразительный способ избежать статических глобальных переменных и эффективно определить «частное» пространство имен. Однако, прежде чем я внесу этот шаблон во всю кодовую базу и выкопаю себе яму, о которой позже могу пожалеть, мне было интересно, что другие думают об этом подходе? Есть ли очевидные или неочевидные недостатки...?
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»