›C++C++の第一級関数/第一級オブジェクト/関数オブジェクトC++ではラムダ式や、ファンクタ(関数オブジェクト)の定義とそのインスタンスの生成を用いることで、第一級オブジェクト(ファーストクラスオブジェクト)を実現します。ラムダ式や、ファンクタによって生成されたオブジェクトは、第一級関数(ファーストクラスファンクション)として扱うことが可能となります。ファンクタ(古くから使われている技法)ラムダ式(ファンクタの糖衣構文)ファンクタファンクタは関数オブジェクトを表現するためのものです。ラムダ式形式で関数オブジェクトを直接定義することも可能です。ラムダ式はファンクタを簡易的に定義するための糖衣構文として利用することができます。#ラムダ式ラムダ式で宣言されたprintクロージャオブジェクトは一般的な関数として振る舞うこともできますし、第一級関数として変数に格納したり、他の関数の引数や戻り値としてやり取りすることもできます。ラムダ式は無名関数でもあるため、第一級オブジェクトとして任意の場所で定義したり利用することも可能です。std::endl;});豆知識として、ファンクタやラムダ式による関数オブジェクトは、main関数の外や特定の名前空間内で変数宣言することも可能です。