Пространства имён
Варианты
Действия

Type alias (начиная с C++11)

Материал из cppreference.com
< cpp‎ | language

 
 
Язык С++
Общие темы
Управление программой
Операторы условного выполнения
Операторы повторения
Операторы перехода
Функции
объявление функции
объявление лямбда-функции
шаблон функции
спецификатор inline
спецификаторы исключений (устарело)
спецификатор noexcept (C++11)
Исключения
Пространства имён
объявление пространства имён
псевдонимы пространства имён
Типы
спецификатор decltype (C++11)
Спецификаторы
cv-спецификаторы
спецификаторы продолжительности хранения
спецификатор constexpr (C++11)
спецификатор auto (C++11)
спецификатор alignas (C++11)
Инициализация
Литералы
Выражения
Утилиты
Типы
typedef-объявление
объявление псевдонима типа (C++11)
атрибуты (C++11)
Приведения типов
неявные преобразования
const_cast-преобразование
static_cast-преобразование
dynamic_cast-преобразование
reinterpret_cast-преобразование
C-подобное и функциональное приведение типов
Выделение памяти
Классы
Особые свойства классовых функций
Специальные функции-члены
Шаблоны
шаблон класса
шаблон функции
специализация шаблона
упакованные параметры (C++11)
Разное
Ассемблерные вставки
 
Тип псевдонимы похожи на ЬурейеЕ, однако, имеют преимущество работы с шаблонами.
Оригинал:
Type aliases are similar to ЬурейеЕ, however, have the advantage of working with templates.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

[править] Синтаксис

using identifier = type_name;

[править] Примеры

using flags = std::ios_base::fmtflags;
using func = void (*) (int,int);
// typedef std::ios_base::fmtflags flags;
// typedef void (*func)(int, int);
 
template<class T> using ptr = T*;
ptr<int> x;
 
template<class T> using vec = std::vector<T>;
vec<float> w;
 
// type alias used to hide some template parameter
template<class CharT> using mystring = std::basic_string<CharT,std::char_traits<CharT>>;
mystring<char> str;
 
// type alias used to simplify the syntax of std::enable_if
template< class Condition >
using EnableIf = Invoke<std::enable_if<Condition::value>>;
 
template <typename T, typename = EnableIf<std::is_polymorphic<T>>>
int f(T t);