如果我們有以下幾點:完美轉發
template <class T>
struct B{
T data;
}
struct A{
int data_array[100];
}
int main()
{
A x;
const A x_const;
auto y1 = f(A());
auto y2 = f(x);
auto y3 = f(x_const);
auto y4 = f(std::move(x));
}
我想知道的f
(地起作用,但宏是好的,也是),使得:
decltype(y1) == B<A>
decltype(y2) == B<A&>
decltype(y3) == B<const A&>
decltype(y4) == B<A&&>
也就是說,f
完全向前x
轉換成B
的對象。
[What for?](http://www.catb.org/esr/faqs/smart-questions.html#goal) – GManNickG 2011-06-09 02:09:28
您可以選擇函數重載作爲最後的手段。 :) – iammilind 2011-06-09 02:21:51