戻り値と仮引数の型を調べることはできません。回りくどく、擬似的に調べることはできますが、その場合も関数ポインタの型を明示しないとできません。暗黙に型を置き換えてくれる訳ではありません。templateの展開後となります。そのため、templateへラムダ式を渡すコードを記述しても関数ポインタ型として展開されることはありません。//template側の仮引数の型が明示されていないため、型の不一致により暗黙の型変換どころかtemplateがインスタンス化できない。//仮引数の型が明示されているため、暗黙の型変換ができる。0;}あと、もし他の言語と同じようなことをしようとされていましたらジェネリックプログラミングについて、他言語との仕様の違いについて調べてみてください。それと、目的に寄りますがラムダ式指定時に実引数も同時に渡すのであれば、以下のような方法で動作させることはできます。5年前ご回答ありがとうございます。5年前なるほど、賢いですね。operatorは関数ですからね。取り出すのは簡単ですね。存在すら忘れてしまっていた件だったが・・・、朝御飯を食べていて急に思いついた。本当の意味で型を取り出せてしまうようだ。};//ラムダ式から取り出した仮引数の型で、変数を宣言する。std::endl;//別のラムダ式から取り出した仮引数の型で、新しいラムダ式の仮引数の型を構成する。4年前decltype([]{})は仕様で禁止されています。コンパイルエラーです。[]{};decltype(f);と変数にする必要があります。ラムダ式はdecltype式では書けません。4年前まぁまぁ、その指摘は許してあげてください。引数として渡されたラムダ式の戻り値と引数の型を調べることはできますか?参考にされただけのようで、おっしゃってるように一度変数に納めてからか関数の仮引数で受け取った後、ということが前提のお話ではないでしょうかね。実際にこのスレッド上に提示されているコードでも、直接decltypeにつっこんでいるコードは見受けられませんから理解されていると割り切ってあげて良さそうじゃないでしょうかね?おっしゃってるようにコンパイルから指摘される事項でもありますから。第三者がこのトピックを見た時に誤解の元となる表現をされていると思ったので補足を述べたまでです。誰でも読めるのですから。質問者さんへの指摘という意味はあまりないので、気にしないでください。