2

簡単なテストを行い、trueまたはfalseを返す単純な関数を作成しようとしています。

myfunct = (_3 < someArray[i]);

これを行うと、次のエラーが発生します:

error: no match for 'operator<' in '<unnamed>::_1 < depths[i]'

私が望むのはこれと同等のものを手に入れることです

bool myFunct(unsigned int a, unsigned int b, unsigned int c, unsigned int d)
{
   return c < 22; // Suppose 22 was in someArray[i]
}
4

2 に答える 2

3

名前空間が正しいことを確認しますか?

どちらかである必要があります

using namespace boost::lambda;

また

boost::lambda::_1

プレースホルダーは、ブーストの他の部分、または他のライブラリで使用されていることを忘れないでください(ローカルTR1との競合が発生する可能性があります)。これにより、エラーが発生する可能性があります。

于 2010-01-13T14:14:04.687 に答える
2

以下はエラーなしでコンパイルされますが、残りのコードはどのように見えますか?

#include <boost/function.hpp>
#include <boost/lambda/lambda.hpp>

using namespace boost;
using namespace boost::lambda;

int main(void)
{
    int someArray[5];
    int i;
    function<bool(int,int)> f = (_1 < someArray[i]);
}
于 2010-01-13T14:23:25.837 に答える