С++ для начинающих

       

Псевдонимы пространства имен


Псевдоним пространства имен

используется для задания короткого синонима имени пространства. Например, длинное имя

namespace International_Business_Machines

   { /* ... */ }

может быть ассоциировано с более коротким синонимом:

namespace IBM = International_Business_Machines;

Объявление псевдонима начинается ключевым словом namespace, за которым следует короткий псевдоним, а за ним– знак равенства и исходное полное имя пространства. Если полное имя не соответствует никакому известному пространству, это ошибка.

Псевдоним может относиться и к вложенному пространству имен. Вспомним слишком длинное определение функции func() выше:

#include "primer.h"

// трудно читать!

void func( cplusplus_primer::MatrixLib::matrix &m )

{

    // ...



    cplusplLis_primer::MatrixLib::inverse( m );

    return m;

}

Разрешается задать псевдоним для обозначения вложенного cplusplLis_primer::MatrixLib, сделав определение функции более удобным для восприятия:

#include "primer.h"

// более короткий псевдоним

namespace mlib = cplusplus_primer::MatrixLib;

// читать проще!

void func( mlib::matrix &m )

{

    // ...

    mlib::inverse( m );

    return m;

}

Одно пространство имен может иметь несколько взаимозаменяемых псевдонимов. Например, если псевдоним Lib ссылается на cplusplus_primer, то определение функции func()

может выглядеть и так:

// псевдоним alias относится к пространству имен cplusplus_primer

namespace alias = Lib;

void func( cplusplus_primer::matrix &m ) {

    // ...

    alias::inverse( m );

    return m;

}



Содержание раздела