Проблема с std::function
От: Went  
Дата: 23.09.15 20:24
Оценка:
Здравствуйте. Этот код:
std::function<void(std::string&)> str = &std::string::clear;

не компилируется в VS2013. Это баг или фича? Без ссылки компилируется, но потом вызов происходит для копии строки, а не для оригинала.
Понятно, что можно прибиндить через std::bind, но это лишние вызовы и нежелательная кодолапша. При этом boost::function работает как надо.
Отредактировано 23.09.2015 20:24 Went . Предыдущая версия .
Re: Проблема с std::function
От: Ops Россия  
Дата: 24.09.15 02:50
Оценка: 4 (1)
Здравствуйте, Went, Вы писали:

W>не компилируется в VS2013. Это баг или фича? Без ссылки компилируется, но потом вызов происходит для копии строки, а не для оригинала.

W>Понятно, что можно прибиндить через std::bind, но это лишние вызовы и нежелательная кодолапша. При этом boost::function работает как надо.

Баг, в 2015 пофиксили.
Ссылка на коннект не пашет, но есть в гуглокеше
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.