私はいくつかのコードを見直していて、次のような行に出くわしました:
std::tr1::function<bool (int, int)>(//etc...
テンプレート型の構文は、bool (int, int)
私にはなじみがありませんでした。グーグルに基づいて、std::tr1::function
この構文は関数の戻り値の型とパラメーターを定義するために使用されているようです。それは理にかなっていますが、なぜその構文が機能するのでしょうか? 私の知る限り、C++ テンプレートは型しか指定できませんか?
コード内の型のインスタンスを次のようにインスタンス化しようとしました:
bool (int, int) test;
予想どおり、ステートメントはコンパイルに失敗しました。少なくとも、構文は次のようにする必要があります。 bool (test)(int, int);
bool (int, int)
C++ 型として扱われますか? これを私の心の中で調整するためのヒントはありますか?
ありがとう、アダム