如何将boost :: lambda与std :: find_if一起使用?

Jen*_*cke 9 c++

我有一个std :: vector,我想检查每个元素的特定属性.SomeStruct有一个属性'type'.我想检查此属性是Type1还是Type2.

我的计划是使用boost :: lambda.

std::vector<SomeStruct>::const_iterator it =
    std::find_if(
        vec.begin(), vec.end(),
        _1.type == SomeStruct::Type1 || _1.type == SomeStruct::Type2);
Run Code Online (Sandbox Code Playgroud)

因为我需要访问每个元素的特定属性,所以我不确定是否可以使用boost :: lambda.

任何提示?

sep*_*p2k 10

std::find_if(
    vec.begin(), vec.end(),
    bind(&SomeStruct::type, _1) == SomeStruct::Type1 ||
    bind(&SomeStruct::type, _1) == SomeStruct::Type2);
Run Code Online (Sandbox Code Playgroud)