たとえば、10個のテンプレート関数があるとします。
command1<T>(const std::string&)
command10<T>(const std::string&, int timeInSeconds)
コードのある時点で、特定のコマンドを実行したいことを確認します。次に、このコマンドに関連付けられているタイプに関する情報を(実行時に)要求します。これは、列挙型を介して返されます。したがって、実行したいことを確認command2
し、列挙型に。が含まれていることを確認しますSTRING
。したがって、私は電話したいと思います:
command2<std::string>(id, param1, param2);
このマッピングを行うための良いアプローチとして何をお勧めしますか?
列挙型にはINT、BOOLを含めることができます。DOUBLEまたはSTRING。特定のコマンドに渡される引数は、列挙型の値に依存しません。
例:
これがもう少しよく説明する例です:
私のプログラムがコマンドラインから「command4a」を受け取ったとしましょう。この入力を解析し、command4を呼び出す必要があることを確認します。次に、「a」に関連付けられているタイプを検索し、この場合はを取得しINT
ます。私は今電話する必要がありますcommand4<int>("a");