在我的代码中,我创建了两个覆盖 [] 运算符的模板函数(构建我的 STL 映射版本的练习):
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)
模板(至少对于第二个参数),它可以向地图添加条目,而不是我想要的其他模板。参考 Stack Overflow 上最近的运算符重载帖子,看来我的运算符重载模板函数没问题。我是否需要在我的 invokeStkCmd 函数中做一些事情,或者我的运算符重载函数毕竟不准确?