ΠŸΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚Π²Π° ΠΈΠΌΡ‘Π½
Π’Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹
ДСйствия

ΠŸΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΡ‹ пространств ΠΈΠΌΡ‘Π½

ΠœΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» ΠΈΠ· cppreference.com
 
C++
ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° компилятором
АвтономныС ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ‰Ρ‘Π½Π½Ρ‹Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ
Π―Π·Ρ‹ΠΊ
Бтандартная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°
Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ
ВрСбования ΠΊ имСнованию
ΠœΠ°ΠΊΡ€ΠΎΡΡ‹ тСстирования Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ (C++20)
ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° языка
Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ‚ΠΎΠ² (C++20)
Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° мСтапрограммирования (C++11)
Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° диагностики
Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΎΠ±Ρ‰ΠΈΡ… ΡƒΡ‚ΠΈΠ»ΠΈΡ‚
Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° строк
Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ²
Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ²
Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠ² (C++20)
Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ²
Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° числСнных Π΄Π°Π½Π½Ρ‹Ρ…
Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π°
Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ
РСгулярныС выраТСния (C++11)
АтомарныС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ (C++11)
Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ†ΠΈΠΈ (C++11)
Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы (C++17)
ВСхничСскиС спСцификации
Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ символов
Π’Π½Π΅ΡˆΠ½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ
 
Π―Π·Ρ‹ΠΊ Π‘++
ΠžΠ±Ρ‰ΠΈΠ΅ Ρ‚Π΅ΠΌΡ‹
Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌ
ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ условного выполнСния
if
ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ (Ρ†ΠΈΠΊΠ»Ρ‹)
ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°
Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ
ОбъявлСниС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ
Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ лямбда-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ
Π‘ΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ inline
Π‘ΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ динамичСских ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ (Π΄ΠΎ C++17*)
Π‘ΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ noexcept (C++11)
Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ
ΠŸΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚Π²Π° ΠΈΠΌΡ‘Π½
Π’ΠΈΠΏΡ‹
Π‘ΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹
decltype (C++11)
auto (C++11)
alignas (C++11)
Π‘ΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ хранСния
Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ
ВыраТСния
ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ прСдставлСния
Π›ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹
ЛогичСскиС - ЦСлочислСнныС - Π‘ ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой
Π‘ΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ - Π‘Ρ‚Ρ€ΠΎΠΊΠΎΠ²Ρ‹Π΅ - nullptr (C++11)
ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅ΠΌΡ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ (C++11)
Π£Ρ‚ΠΈΠ»ΠΈΡ‚Ρ‹
Атрибуты (C++11)
Types
ОбъявлСниС typedef
ОбъявлСниС псСвдонима Ρ‚ΠΈΠΏΠ° (C++11)
Casts
НСявныС прСобразования - Π―Π²Π½Ρ‹Π΅ прСобразования
static_cast - dynamic_cast
const_cast - reinterpret_cast
Π’Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ памяти
ΠšΠ»Π°ΡΡΡ‹
Бвойства Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ класса
explicit (C++11)
static
Π‘ΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ-элСмСнты
Π¨Π°Π±Π»ΠΎΠ½Ρ‹
Π Π°Π·Π½ΠΎΠ΅
 
ОбьявлСния
ΠžΠ±Π·ΠΎΡ€
синтаксис объявлСния
ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ-спСцификаторов-объявлСния
объявлСниС
Π‘ΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹
спСцификатор Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ virtual
спСцификатор Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ explicit
(C++11)
(C++20)
спСцификатор класса памяти
(C++11)
(C++11)
(C++11)
спСцификатор ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°
Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ (C++11)
ОбъявлСния
ссылка
ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ
массив
Block declarations
простоС объявлСниС
→ объявлСниС структурных привязок (C++17)
объявлСниС псСвдонимов(C++11)
объявлСниС псСвдонимов пространств ΠΈΠΌΡ‘Π½
using-declaration
Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° using
объявлСниС static_assert (C++11)
ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ asm
объявлСниС Π½Π΅ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΠ³ΠΎ enum(C++11)
Π”Ρ€ΡƒΠ³ΠΈΠ΅ объявлСния
ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ пространств ΠΈΠΌΡ‘Π½
объявлСниС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ
объявлСниС шаблона класса
объявлСниС шаблона Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ
явноС инстанцированиС шаблона(C++11)
явная спСциализация шаблона
спСцификация связывания
объявлСниС Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° (C++11)
пустоС объявлСниС
 

ΠŸΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΡ‹ пространства ΠΈΠΌΡ‘Π½ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ программисту ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½ΠΎΠ΅ имя для пространства ΠΈΠΌΡ‘Π½.

Они ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ удобная ΠΌΠ΅Ρ‚ΠΊΠ° для Π΄Π»ΠΈΠ½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ Π³Π»ΡƒΠ±ΠΎΠΊΠΎ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… пространств ΠΈΠΌΠ΅Π½.

Бинтаксис

namespace псСвдоним = псСвдоним_пространства_ΠΈΠΌΡ‘Π½; (1)
namespace псСвдоним = ::псСвдоним_пространства_ΠΈΠΌΡ‘Π½; (2)
namespace псСвдоним = Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ΅_имя::псСвдоним_пространства_ΠΈΠΌΡ‘Π½; (3)

ОбъяснСниС

Новый псСвдоним псСвдоним прСдоставляСт Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ доступа ΠΊ имя_пространства_ΠΈΠΌΡ‘Π½.

псСвдоним Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Ρ€Π°Π½Π΅Π΅ Π½Π΅ использовалось. псСвдоним дСйствитСлСн Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΆΠΈΠ·Π½ΠΈ области видимости, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠ½ прСдставлСн.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

#include <iostream>
 
namespace foo {
    namespace bar {
         namespace baz {
             int qux = 42;
         }
    }
}
 
namespace fbz = foo::bar::baz;
 
int main()
{
    std::cout << fbz::qux << '\n';
}

Π’Ρ‹Π²ΠΎΠ΄:

42

Π‘ΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅

объявлСниС пространства ΠΈΠΌΡ‘Π½ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅Ρ‚ пространство ΠΈΠΌΡ‘Π½[ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ]
Π²Π²ΠΎΠ΄ΠΈΡ‚ объявлСниС псСвдонима (C++11) создаёт синоним для Ρ‚ΠΈΠΏΠ°[ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ]