Type alias (C++11起)

来自cppreference.com
< cpp‎ | language

 
 
C++语言
表达式
替代表示
字面量
布尔型 - 整型 - 浮点型
字符型 - 字符串 - nullptr (C++11)
用户定义 (C++11)
Utilities
属性 (C++11)
Types
typedef声明
类型别名声明 (C++11)
Casts
隐式类型转换 - 显示类型转换
static_cast - dynamic_cast
const_cast - reinterpret_cast
内存分配
类特有的函数属性
静态成员函数
模板
杂项
 
类型别名类似类型定义,但是,使用模板的优势.
原文:
Type aliases are similar to 类型定义, however, have the advantage of working with templates.
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

[编辑] 语法

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);