gpt4 book ai didi

c++ - boost::lambda 绑定(bind)表达式无法绑定(bind)到字符串的 empty() 以工作

转载 作者:行者123 更新时间:2023-11-30 03:10:54 26 4
gpt4 key购买 nike

我正在尝试编译以下代码片段。但它失败了:

错误 C2665:“boost::lambda::function_adaptor::apply”:8 个重载中没有一个可以转换所有参数类型。调用绑定(bind)时指定返回类型没有帮助。

知道我做错了什么吗?

#include <boost/lambda/lambda.hpp>
#include <boost/lambda/bind.hpp>
#include <string>
#include <map>

int main()
{

namespace bl = boost::lambda;
typedef std::map<int, std::string> types;
types keys_and_values;
keys_and_values[ 0 ] = "zero";
keys_and_values[ 1 ] = "one";
keys_and_values[ 2 ] = "Two";

std::for_each(
keys_and_values.begin(),
keys_and_values.end(),
std::cout << bl::constant("Value empty?: ") << std::boolalpha <<
bl::bind(&std::string::empty,
bl::bind(&types::value_type::second, _1)) << "\n");




return 0;
}

最佳答案

小改动以使其使用 g++ 编译(是时候使用更好的编译器了:-)?)

 1 #include <boost/lambda/lambda.hpp>
2 #include <boost/lambda/bind.hpp>
3 #include <algorithm>
4 #include <iostream>
5 #include <string>
6 #include <map>
7
8 int main()
9 {
10
11 namespace bl = boost::lambda;
12 typedef std::map<int, std::string> types;
13 types keys_and_values;
14 keys_and_values[ 0 ] = "zero";
15 keys_and_values[ 1 ] = "one";
16 keys_and_values[ 2 ] = "Two";
17
18 std::for_each(
19 keys_and_values.begin(),
20 keys_and_values.end(),
21 std::cout << bl::constant("Value empty?: ") << std::boolalpha <<
22 bl::bind(&std::string::empty,
23 bl::bind(&types::value_type::second, bl::_1)) << "\n");
24
25
26
27
28 return 0;
29 }

注意缺少包含和 bl::_1

关于c++ - boost::lambda 绑定(bind)表达式无法绑定(bind)到字符串的 empty() 以工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2794825/

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