【发布时间】:2013-11-06 03:29:02
【问题描述】:
我在使用 Boost 时遇到了非常令人沮丧的问题。
当我尝试运行像
这样简单的东西时#include <boost/function.hpp>
#include <boost/lambda/core.hpp>
#include <boost/lambda/bind.hpp>
#include <boost/lambda/lambda.hpp>
#include <boost/array.hpp>
int main()
{
boost::function<size_t(boost::array<size_t, 1>, size_t)> f =
boost::lambda::_1[boost::lambda::_2];
return 0;
}
我回来了:
error C2440: 'return' :
cannot convert from 'boost::lambda::detail::unspecified' to 'size_t'
为什么会出现这个错误,如何让 Boost.Lambda 做我需要的事情?
(是的,我知道我也可以使用 Boost.Phoenix 等,但这不是问题的重点。)
【问题讨论】:
-
@user1095108:使用 boost.lambda 制作一个显然具有
boost::lambda::_1[boost::lambda::_2]效果的 lambda。
标签: c++ boost boost-function boost-lambda