09/02/24 20:17:56
boost::lambda::bindで下のコードがコンパイルエラーとなります。
(1)のところを
la::bind(&human::use, man, la::var(t))();
としても同じでした。
因みにboost::bindを使用した場合は
bind(&human::use, man, ref(t))();
とするとコンパイルエラーが発生しないようになりました。
lambda::bindを使用した場合にでるコンパイルエラーを回避する方法はないでしょうか?
環境:WinXP, VC8, boost1.38.0
// main.cpp
#include <boost/lambda/bind.hpp>
#include <boost/lambda/lambda.hpp>
#include "create.hpp"
#include "human.hpp"
#include "tool.hpp"
namespace la = boost::lambda;
int main()
{
human man;
tool* t(create_tool()); // toolは抽象クラス
la::bind(&human::use, man, t)(); // -----(1)
delete t;
}