名前空間
変種
操作

Type alias (C++11およびそれ以降)

提供: cppreference.com
< cpp‎ | language

 
 
C++言語
一般的なトピック
フロー制御
条件付き実行文
繰り返し文 (ループ)
ジャンプ文
関数
関数宣言
ラムダ関数宣言
inline 指定子
例外指定 (非推奨)
noexcept 指定子 (C++11)
例外
名前空間
指定子
decltype (C++11)
auto (C++11)
alignas (C++11)
記憶域期間指定子
初期化
代替表現
リテラル
ブーリアン - 整数 - 浮動小数点
文字 - 文字列 - nullptr (C++11)
ユーザ定義 (C++11)
ユーティリティ
属性 (C++11)
typedef 宣言
型エイリアス宣言 (C++11)
キャスト
暗黙の変換 - 明示的な変換
static_cast - dynamic_cast
const_cast - reinterpret_cast
メモリ確保
クラス
クラス固有の関数特性
特別なメンバ関数
テンプレート
その他
 
型の別名がtypedefがに似ていますが、テンプレートでの作業の利点を持っている.
Original:
Type aliases are similar to typedefが, 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.

[編集] 構文

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