【发布时间】:2010-05-08 16:42:51
【问题描述】:
我正在尝试编译下面的代码 sn-p。但它失败了:
error 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;
}
【问题讨论】:
标签: c++ boost-lambda