谁能解释一下为什么会编译以及为什么会t
以 type 结尾int&
?
#include <utility>
void f(int& r)
{
++r;
}
template <typename Fun, typename T>
void g(Fun fun, T&& t)
{
fun(std::forward<T>(t));
}
int main()
{
int i = 0;
g(f, i);
}
我在 GCC 4.5.0 20100604 和 GDB 7.2-60.2 上看到了这个