異なる種類のメッセージに対して異なるハンドラを使用する場合、各メッセージはint
で識別されます。私は各ハンドラをテンプレートメソッドのインスタンス化として定義したいと思います。 MESSAGE1
がタイプではないので、このコードはコンパイルされません。もちろん、テンプレートハンドラのメソッド
handlers.h
enum Handler {
MESSAGE1,
MESSAGE2
};
template<MESSAGE1>
void handle() {
}
main.cppに
int main()
{
handle<Handler::MESSAGE>();
}
:
アイデアは、このようなものです。 メッセージごとに異なるタイプを作成するにはどうすればよいですか?また、これらの型の使用を可能な限り意味のあるものとして維持したいと考えています(enumの使用)。