型推論
2行目のラムダは、oとeの間に適切なoperator+が定義されなければならず、TwoStringAction型と推論される。
SomeMethod(TwoIntegerAction action) の行を有効にすると、Mainメソッドの3行目以外の型推論が効かなくなる。 2行目のラムダは、oとeはstringかintのいずれでもoperator+が実行できるため、TwoStringActionTwoIntegerActionの間で曖昧となる。 3行目のラムダは、代入式の左辺にあるoはstringを格納できる型でなければならないため、TwoStringAction型と推論される。
デリゲート型を引数に取るメソッドを複数用意する場合、オーバーロードではなく別名のメソッドとすることで、この複雑性は回避できる。
C++はC++11規格にて、キーワードautoおよびdecltypeによる戻り値の型推論を導入した。後継規格のC++14ではdecltype(auto)による簡略表現もサポートする。