14
引数としてstl containerを持つ関数ポインタのtypedefを作りたいと思います。このようなもの:テンプレート引数を持つ関数ポインタのtypedefを定義する方法
typedef void (* TouchCallBack)(GLRenderer*, const MotionEvent&, std::vector<T >);
可能ですか? (特にC++ 03で)
引数としてstl containerを持つ関数ポインタのtypedefを作りたいと思います。このようなもの:テンプレート引数を持つ関数ポインタのtypedefを定義する方法
typedef void (* TouchCallBack)(GLRenderer*, const MotionEvent&, std::vector<T >);
可能ですか? (特にC++ 03で)
私はまさにそのような任意のC++ 03溶液を知らない、それは言語に組み込まれていないが、C++ 11で、これはusing
の別名を持つことも可能である。
template<typename T>
using TouchCallBack = void (*)(GLRenderer*, const MotionEvent&, std::vector<T >);
回避策の一つは、構造体を使用している:
C++ 03でtemplate<typename T>
struct TouchCallBack {
typedef void (*type)(GLRenderer*, const MotionEvent&, std::vector<T >);
};
//use like TouchCallBack<int>::type
ない、いや、ブーストまたは何かがトリックアップの袖を持っていない限り。 – chris
あなたが書いたことに間違いはありませんが、 'T'が宣言されているコンテキスト(関数またはクラステンプレート)にいなければなりません。 –
私はグローバルな静的関数 – strobe