我有以下代码来合并两个 std::maps。
template <typename key, typename value>
void merge_maps(std::map<key, value>& one, const std::map<key, value>& another,
boost::function2<value, value, value> aggregate)
{
// MERGING. aggregate is called if key exists in both maps
}
我有一些这样的结构。
struct foo {
int bar;
foo operator+(const foo& other) const;
};
我尝试合并两个我通过 usingstd::map<std::wstring, foo> one, another
的using ,但得到编译错误。foo::operator+
boost::lambda
merge_maps(one, another, _1+_2); // MSCV9.0 cannot deduce template argument for lambda there
请帮帮我。我做错了什么?