C++11, 14の新機能

関数、関数オブジェクトラッパー

全333コースを10日間無料で

ぜひご覧ください。

無料で視聴する すべての加入プランを見る
または
このレッスンでは、関数、関数オブジェクトを値として扱えるクラスについて説明します。
講師:
03:26

字幕

このレッスンでは、関数、関数オブジェクトを値として扱えるクラスについて説明します。関数は関数ポインタで、関数オブジェクトは関数オブジェクトで持ち回ることはできますが、関数や関数オブジェクトを区別せず扱いたいのに、両方同時に保持できるクラスは今までありませんでした。C++11 ではstd::function というクラスが定義され、これを使うことによって関数でも関数オブジェクトでも区別なく扱えるようになります。この std::function に格納してみるために、与えられた引数を +1 するだけの関数を定義してみます。std::function にこの addOne を保持させてみます。そして f に対して 1 を渡して、呼び出した結果を出力させてみます。これをコンパイルして実行してみます。2 と表示されました。std::function が、関数を保持できることが分かったと思います。また、この f に対して途中で、今度はラムダ式を保持させてみたいと思います。今度は与えられた引数に+10 を返す関数オブジェクトをf に保持させることになります。同様に std::cout を使って、この f に 1 を与えた結果を出力させてみます。 コンパイルして実行します。2 、 11 と表示されました。std::function が関数であろうと、関数オブジェクトであろうと、区別なく扱うことができることがわかりました。この std::function のテンプレートパラメータには、関数の型を指定します。ここでは整数値を受け取り、整数値を返す関数の定義です。整数値を 2 つ受け取り整数値を返す関数の場合は、このような記述になります。このレッスンでは、関数、関数オブジェクトを値として扱えるクラスについて説明しました。

C++11, 14の新機能

C++11,とC++14では大幅に機能追加が行われ、これまでのC++よりも遥かに快適なプログラミングが行えるようになりました。このコースではC++03からC++11とC++14で新たに追加された言語機能や標準ライブラリについて簡単に紹介します。進化したC++を知ってより快適にプログラミングを行うために、ぜひともこのコースをご覧ください。

1時間57分 (43 ビデオ)
現在、カスタマーレビューはありません…
 
ソフトウェア・トピック
価格: 2,990
発売日:2015年10月15日

このコースは、「オンデマンド」でご利用可能であり、ダウンロードすることもオンラインで見ることもできます。

ダウンロードすると、オフラインでコースを使用し、豊富なインターフェースをフルに活用できます。複数のデバイスを使用したり、 一度に全コースをダウンロードしたくない場合は、アカントにログインして、ストリーミング・ビデオとしてコースのレッスンを視聴してください。

ビデオトレーニングをお楽しみいただけますように! お問い合わせは、cs-jp@lynda.com宛までご連絡ください。