Реальное преимущество псевдонимов пространства имен перед определением [закрыто]
РЕДАКТИРОВАТЬ: я планирую изменить код и заменитьdefine
с псевдонимом пространства имен. Я не могу сделать это только потому, что «макросы - это зло». Мне нужно объяснитьПочему Я хочу внести изменения ичто может пойти не так, если я не сделаю.
Оставляя в стороне позицию о том, что «макросы - это зло», каковы недостатки#define
над псевдонимом пространства имен?
Взять код
#define MY_NAMESPACE my_namespace
против
namespace MY_NAMESPACE = my_namespace;
Причина наличия псевдонимов не в объеме вопроса. Вы также можете предположить, что имя пространства имен достаточно уникально, чтобы оно нигде не появлялось (т.е. оно просто ссылается на это пространство имен, оно не может - ни сейчас, ни в будущем) ссылаться на переменную или класс или что угодно), поэтому не может быть никакой двусмысленности.