Re: boost::phoenix как правильно разрешить неоднозначность
От: Alexey F  
Дата: 09.08.11 16:19
Оценка: 1 (1)
Здравствуйте, nen777w, Вы писали:

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


Как обычно в случае перегруженных ф-ций:
std::for_each( v.begin(), v.end(), lambda[ (_1->* static_cast<int ( S::* )()>( &S::foo ) )() ] );

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