Передача rvalue через std :: bind

Я хочу передать rvalue через std :: bind функции, которая принимает ссылку на rvalue в C ++ 0x. Я не могу понять, как это сделать. Например:

#include <utility>
#include <functional>

template<class Type>
void foo(Type &&value)
{
    Type new_object = std::forward<Type>(value);    // move-construct if possible
}

class Movable
{
public:
    Movable(Movable &&) = default;
    Movable &operator=(Movable &&) = default;
};

int main()
{
    auto f = std::bind(foo<Movable>, Movable());
    f();    // error, but want the same effect as foo(Movable())
}
27
задан 0x499602D2 23 August 2013 в 20:27
поделиться