エントリーの編集
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
イテレータの受け取り方 - Faith and Brave - C++で遊ぼう
記事へのコメント0件
- 注目コメント
- 新着コメント
このエントリーにコメントしてみましょう。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
イテレータの受け取り方 - Faith and Brave - C++で遊ぼう
以下のコードは、コンパイルエラーになる: template <class Iterator> Iterator f(const Iterator& it)... 以下のコードは、コンパイルエラーになる: template <class Iterator> Iterator f(const Iterator& it) { return it; } int main() { int ar[] = {1, 2, 3}; f(ar); // コンパイルエラー!呼び出し可能なf()のオーバーロードがない } 関数f()はイテレータをconst左辺値参照で受け取る。このようにした場合、テンプレートパラメータIteratorはint[3]に推論される。C++の言語仕様として、組み込み配列はreturn文で返せないので、コンパイルエラーになる(実際には、戻り値型のところでSFINAEが起きる)。 以下のように、イテレータをコピーで受け取ることで関数f()を呼び出せるようになる: template <class Iterator> Iterator f(Iterat