Aliasy przestrzeni nazw
• tech • 124 słowa • 1 minuta czytania
Nie wszyscy pewnie mają świadomość, że w C++ istnieje możliwość definiowania aliasów dla przestrzeni nazw. Coś jak typedef dla namespace ;)
Mechanizm ten pozwala na przypisanie innej nazwy dla istniejącej już przestrzeni nazw.
Szczególnie użyteczne przy długich nazwach, gdzie pozwala unikać ciągłego wpisywania tych nazw:
namespace my_long_namespace_name {
int i;
}
my_long_namespace_name::i = 5;
namespace my = my_long_namespace_name;
my::i = 5;
lub zagnieżdżonych przestrzeniach:
namespace my_long_namespace_name {
namespace my_utils {
void f() {
// ...
}
}
}
my_long_namespace_name::my_utils::f();
namespace func = my_long_namespace_name::my_utils;
func::f();
Powyższy przykład można tez rozwiązać z wykorzystaniem dyrektywy używania:
namespace func {
using namespace my_utils;
}
Oczywiste jest, że alias nie może kolidować z istniejącą nazwą w danym zasięgu. W przypadku nie spełnienia tego warunku kompilator poinformuje nas o tym.
Komentarze (1)
Dobra, jedna rzecz o której wiedziałem :D:D:D:D