hereからstd::function
にはfunction_type
がないか、またはそれを初期化するのに使用された実際のタイプをエクスポートする同等のメンバータイプがあります。
result_type
,argument_type
、およびfirst_argument_type
およびsecond_argument_type
がありますが、前述のタイプのものはありません。
なぜインタフェースの一部としてそのようなタイプを提供しないのですか?
確かにそれには正当な理由がありますが、私はその理由を理解することができないので、私はそれを見つけ出すのが好奇妙です。私は最初の質問がになります知っているためなぜstd :: functionにfunction_typeまたは同等のメンバータイプがないのですか?
は、なぜあなたはそれが、まあ、私は彼らの基礎となるタイプは、それはだsfinae評価、が同じであるかどうかを確認するためstd::is_same<F1::function_type, F2::function_type>::value
のような何かをしたいことを想像必要がありますか記号が同じである限り、異なる機能を含んでいれば問題ありません。
私はそれがあまり意味がないことを認めます、正直なところ質問は好奇心のためです。
はそれを
を初期化するために使用される実際の型をエクスポートする:はhis answerのコメントで@Brianで述べたように
、私は私が書いたときを初期化用語を誤用EDIT
私が興味を持っているのは、本当にテンプレート引数です。
例として、std::function<void(S&, int)>
(S
は構造体です)の場合、function_type
はvoid(S&, int)
になります。
'is_same'チェックでは、' F1'と 'F2'が同じタイプであるかどうかを簡単にチェックできますか? – Brian
@ブライアンええ、絶対に、私のコメントに注意してください*私はそれがあまり意味がないことを認め*! :-) ...私はちょうど私がそれのために合理的な使用を見つけることができない場合でも、それが機能のインターフェイスの一部ではない理由があるかどうかを知りたいだけで、これはすでに良いだろう確かに応答。 *それが役に立たないのかどうかわからない*唯一の合理的な回答か他の理由がある場合。それで全部です。 – skypjack