私のコードでは、[]演算子(自分のバージョンのSTLマップを作成するための演習)をオーバーレイする2つのテンプレート関数を作成しました。
const V& operator[](const K& key) const; // X = map["kuku"]
V& operator[](const K& key); // map["kuku"] = x
次に、次の関数を使用して演算子を使用します。
invokeStkCmd (my_stacks[stk_name], my_cmds[crnt_word]);
そのテンプレートは
invokeStkCmd (StackComp* stkPtr, const shake_cmds_t cmd)
この呼び出しでは、V& operator[](const K& key)
テンプレート(少なくとも2番目のパラメーター)を使用します。これにより、マップにエントリを追加できますが、意図した他のテンプレートは追加できません。ここStackOverflowの最近の演算子オーバーロードの投稿を参照すると、私の演算子オーバーロードテンプレート関数は問題ないようです。invokeStkCmd関数で何かを行う必要がありますか、それとも演算子のオーバーロード関数は結局正確ではありませんか?