template <typename T> struct RemoveReference {
typedef T type;
};
template <typename T> struct RemoveReference<T&> {
typedef T type;
};
template <typename T> struct RemoveReference<T&&> {
typedef T type;
};
template <typename T> typename RemoveReference<T>::type&& Move(T&& t) {
return t;
}
...
remote_integer x = frumple(5);
remote_integer&& x1 = Move(x);
我得到一个错误“错误C2440:'return':无法从'remote_integer'转换为'remote_integer &&'”
编译器发生了什么变化?使用 std::move 一切顺利。