std :: bind теряет ссылку при доставке как ссылка на значение

У меня есть следующий код:

#include 
#include 

template 
auto callback(T&& func) ->decltype(func())
{
    return func();
}

double test(double& value)
{
    value=value+1.0;
    return value;
}

int main(void)
{
    double t=1.0;
    printf("%f\n",t);
    test(t);
    printf("%f\n",t);
    callback(std::bind(test,t));
    printf("%f\n",t);
}

И это выводит

1.000000
2.000000
2.000000

Что подразумеваетcallback функция получила копиюt вместо ссылки наt, Мне интересно, что случилось, так как дляstd::bind это должно быть совершенным пересылкой.

Ответы на вопрос(2)

Ваш ответ на вопрос