Привет, всем!
Споткнулся о прикольную
багу фичу — множественный форвардинг (а значит, и множественное перемещение, иногда) внутри std::bind:
http://coliru.stacked-crooked.com/a/041bd611b4bd1924
#include <iostream>
#include <string>
#include <functional>
int main()
{
using std::placeholders::_1;
auto foo = [](auto a, auto b) { std::cout << "{ "<< a << ", " << b << " }" << std::endl; };
auto f = std::bind(foo, _1, _1);
f(std::string("Hello")); // -> { , Hello }
}
Почему так сделано — это понятно. Но ошибку искал часа полтора. Так что, будьте осмотрительны,
остерегайтесь выходить на болота в ночное время ну, в общем, вы поняли.