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)

Matheos avatar
Matheos
20080911-180048-matheos

Dobra, jedna rzecz o której wiedziałem :D:D:D:D

Dodaj komentarz

/dozwolony markdown/

/nie zostanie opublikowany/