использование static_cast с boost :: bind - PullRequest
0 голосов
/ 07 августа 2010

Я хочу преобразовать вектор типа T в вектор типа K. Я пробовал это, но это не работает:

transform(vec.rbegin(),vec.rend(),vecNew.begin(),boost::bind(static_cast<K>(),_1));

Я получаю ошибку: «Ожидаемое первичное выражение перед») "жетон".Что я делаю не так?

Ответы [ 2 ]

4 голосов
/ 07 августа 2010

Используйте функтор усиления броска ll_static_cast<K>()

1 голос
/ 10 августа 2010

Статическое приведение не требуется, если нет неявного преобразования из T в K. Если конструктор преобразования не является явным или если вы используете оператор T :: K (), вы можете просто сделать:

transform(vec.rbegin(),vec.rend(),vecNew.begin());

Обратите внимание, что это также меняет порядок элементов.

...