Здравствуйте, Пандочка, Вы писали:
П>У меня есть вектор с wstring.
П>П>std::vector<std::wstring> v;
П>
П>П>void foo(LPCWSTR a);
П>
П>Хочется что-то вроде static_cast<vector<LPCWSTR>>(v) (это, конечно, ересь).
П>Как это правильно и красиво сделать?
Наверное, что-нть вроде (не компилировал, просто навскидку)
#include <boost/bind.hpp>
void f()
{
using namespace boost;
std::for_each(v.begin(), v.end(),
bind( foo,
bind(&std::wstring::c_str, _1)
));
}
Еще в бусте есть transform_iterator — можно сделать так, чтобы у тебя итерация сразу шла по x.c_str()