テンプレート プログラミングで型特性または動作を定義するには、2 つの方法があります。
1つはクラス内で定義することです
class MyClass
{
public:
typedef ... DialogType;
static string type() {...}
...
};
もう1つはクラス外で定義されています
class MyClass {...};
template<class T> struct Dialog;
template<> struct Dialog<MyClass> { typedef ... Type;}
template<class T> string type();
template<> string type<MyClass>() { ... }
どちらの方法が優れているのか、その理由 > または、他に良い方法はありますか?