Type alias (C++11 起)
来自cppreference.com
该页由英文版wiki使用Google Translate机器翻译而来。
该翻译可能存在错误或用词不当。鼠标停留在文本上可以看到原版本。你可以帮助我们修正错误或改进翻译。参见说明请点击这里. |
类型别名类似类型定义,但是,使用模板的优势.
原文:
Type aliases are similar to 类型定义, however, have the advantage of working with templates.
[编辑] 语法
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);