lvalue-to-rvalue conversion がかかるんで普通に渡せるんじゃない?
static_cast とか std::move を使うのは overload の解決を制御するためだと思う。