名前空間
変種

関数宣言

提供: cppreference.com
 
 
C++言語
一般的なトピック
フロー制御
条件付き実行文
繰り返し文 (ループ)
ジャンプ文
関数
関数宣言
ラムダ関数宣言
inline 指定子
例外指定 (C++20未満)
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
メモリ確保
クラス
クラス固有の関数特性
特別なメンバ関数
テンプレート
その他
 
 

関数宣言は関数の名前とその型を導入します。 関数定義は関数の名前/型を関数の本体と紐付けます。

関数宣言

関数宣言は任意のスコープに現れることができます。 クラススコープの関数宣言はクラスメンバ関数を導入します (friend 指定子が使用された場合を除きます) (詳細はメンバ関数およびフレンド関数を参照してください)。

宣言されている関数の型は戻り値の型 (宣言の構文decl-specifier-seq によって提供されます) および関数の declarator から構成されます。

noptr-declarator ( parameter-list ) cv(オプション) ref(オプション) except(オプション) attr(オプション) (1)
noptr-declarator ( parameter-list ) cv(オプション) ref(オプション) except(オプション) attr(オプション) -> trailing (2) (C++11以上)

(declarator の構文の他の形式については宣言を参照してください。)

1) 普通の関数宣言子の構文。
2) 後置戻り値型の宣言。 後置戻り値型は最も外側の関数宣言子に対してのみ使用できます。 この場合 decl-specifier-seq はキーワード auto を含まなければなりません。
noptr-declarator - 任意の有効な declarator。 ただし *、 & または && で始まる場合は括弧で囲む必要があります。
parameter-list - 関数の引数のコンマ区切りのリスト (空でも構いません) (詳細は後述)。
attr(C++11) - オプショナルな属性のリスト。 これらの属性は関数自身ではなく関数の型に適用されます。 関数に対する属性は宣言子内の識別子の後に現れ、宣言の先頭に現れる属性 (もしあれば) と組み合わされます。
cv - const/volatile 修飾。 非静的メンバ関数の宣言でのみ使用できます。