boost::phoenix как правильно разрешить неоднозначность
От: nen777w  
Дата: 09.08.11 15:57
Оценка:
Например:

struct S
{
    int foo() { return 0; }
    int foo( int ) { return 1; }
};

typedef std::vector<S> v_S;

void test()
{
    using boost::phoenix::placeholders::_1;
    using boost::phoenix::lambda;

    v_S v;

        //error C2914: 'boost::phoenix::operator ->*' : cannot deduce template argument as function argument is ambiguous
        //error C2568: '->*' : unable to resolve function overload
    std::for_each( v.begin(), v.end(), lambda[ (_1->*&S::foo)() ] );
}


Спасибо.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.