我不知道爲什麼這些代碼無法編譯。我在Visual C++ 2010和gcc中用-std = C++ 0x進行了測試。有人提出一些建議? 謝謝!關於C++ 0x參考摺疊的問題
template<typename T>
class Foo
{
public:
void test(const T&){cout<<"const";}
void test( T&){cout<<"non const";}
};
int main()
{
int a;
Foo<int&> f;
}
編譯錯誤: '無效美孚::測試(T)':成員函數已經定義或聲明
偏偏這個可以編譯?
template<typename T> void foo(const T&){cout<<"const"; }
template<typename T> void foo(T&){cout<<"non const"; }
int main()
{
int a;
foo<int&>(a);
}
心中已經讀的C++ 0x的文章說:T & & ==牛逼&,所以常量牛逼& & ==常量牛逼&?