Type alias (C++11 起)
来自cppreference.com
|
|
This page has been machine-translated from the English version of the wiki using Google Translate.
The translation may contain errors and awkward wording. Hover over text to see the original version. You can help to fix errors and improve the translation. For instructions click here. |
类型别名类似类型定义,但是,使用模板的优势.
Original:
Type aliases are similar to 类型定义, however, have the advantage of working with templates.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
[编辑] 语法
| 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);