gpt4 book ai didi

c++ - Boost::Lambda 方法推导错误 MSVC9.0

转载 作者:太空宇宙 更新时间:2023-11-04 14:14:13 25 4
gpt4 key购买 nike

我有以下代码来合并两个 std::map。

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;
};

我尝试合并两个 std::map<std::wstring, foo> one, another使用 foo::operator+我使用 boost::lambda 通过了它, 但出现编译错误。

  merge_maps(one, another, _1+_2); // MSCV9.0 cannot deduce template argument for lambda there

请帮帮我。我做错了什么?

最佳答案

已解决。需要指定 lambda 返回类型。 MSVC 实例化模板没有任何问题。

merge_maps(one, another, ret<foo>(_1+_2));

关于c++ - Boost::Lambda 方法推导错误 MSVC9.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12553783/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com