#include <iostream>
template <typename T>
class test
{
public:
test(T&& t)
{
}
};
template <typename T>
void succeed(T&& t)
{
}
int main()
{
int i = 1;
test<int> t(i); // failed to compile
succeed(i); // OK
return 0;
}
錯誤從GCC 5.2: main.cpp中:在函數 '詮釋主()': main.cpp中:20:18:錯誤:不能結合 'INT' 左值to'int & &' test t(i); ^ main.cpp中:7:5:注:初始化的參數1 '測試::測試(T & &)[用T = INT]' 測試(T & &噸) ^ ~~~右值參考VS功能模板
有人可以解釋爲什麼類模板不能編譯,但功能模板是可以的嗎? 謝謝。
如果我們真的知道你得到的錯誤,這將更容易解釋。發佈有關構建錯誤的問題時,請始終在問題的主體中包含完整的和未經編輯的完整錯誤輸出。請修改您的問題以包含該問題。還請包括您正在使用的編譯器以及它的哪個版本。 –