【发布时间】:2014-05-06 11:05:50
【问题描述】:
请解释与移动语义一起使用时自动类型推导的工作原理:
#include <iostream>
template <typename T>
struct A {
static void type() { std::cout << __PRETTY_FUNCTION__ << std::endl; }
};
float& bar() {
static float t = 5.5;
return t;
}
int foo() {
return 5;
}
int main() {
auto &&a1 = foo(); // I expected auto -> int (wrong)
auto &&a2 = bar(); // I expected auto -> float& (correct)
A<decltype(a1)>::type();
A<decltype(a2)>::type();
}
输出是:
static void A<T>::type() [with T = int&&]
static void A<T>::type() [with T = float&]
【问题讨论】:
-
您的输出显示
int和float?
标签: c++11