21

stl コンテナーを引数として持ち、このコンテナーの型が不明な関数ポインターの typedef を作成したいと思います。このようなもの:

typedef void (* TouchCallBack)(GLRenderer*, const MotionEvent&, std::vector<T >);

それが可能だ?(特に C++ 03)

4

1 に答える 1

38

私はそのような C++03 ソリューションを知りません。言語に組み込まれていませんが、C++11 ではusingエイリアスを使用してこれを行うことができます。

template<typename T>
using TouchCallBack = void (*)(GLRenderer*, const MotionEvent&, std::vector<T >);

C++03 の回避策の 1 つは、構造体を使用することです。

template<typename T>
struct TouchCallBack {
    typedef void (*type)(GLRenderer*, const MotionEvent&, std::vector<T >);
};

//use like TouchCallBack<int>::type
于 2013-02-13T08:03:58.160 に答える