重载函数和函数类型

时间:2017-04-28 04:50:13

标签: c++ function c++11 templates overloading

我正在阅读C ++入门,我的问题来自14.8.3可调用对象和function。在重载函数和function部分中,它说:

我们不能(直接)将重载函数的名称存储在function类型的对象中:

int add(int i, int j) { return i + j; }
Sales_data add(const Sales_data&, const Sales_data&);
map<string, function<int (int, int)>> binops;
binops.insert( {"+", add} ); // error: which add?

我相信我们想要添加的add非常明显,至少对于人类我猜(只有一个调用签名匹配),但为什么编译器无法分辨?这是因为function类型如何在下面起作用?是否可以在以后的标准中修复?

感谢。

0 个答案:

没有答案