1

タイトルは私の質問をまとめたものです。以下のコードで説明されているように、テンプレート クラス メソッドへのポインターには汎用の typedef が必要です。typedef はジェネリックである必要があります。

template<typename TYPE>
struct MyClass {
    const TYPE& get() const {}
};

// this is okay:
typedef void (MyClass<int>::*ParticleMethodPtr)( int );

// now I just need to typedef this so I can
// use the pointer on methods other than int

// using typedef, not okay:
template< TYPE >
typedef void (MyClass<TYPE>::*ParticleMethodPtr)( TYPE );
4

2 に答える 2