我有這段c 代碼,用VS2019編譯:
#include <iostream>
template<typename t>
class c
{
};
int main(){
using o = class c<int>;
}
有誰知道為什么它不能編譯,抱怨:
Error C2906 'c<int>': explicit specialization requires 'template <>'
使用mingw-gcc,它可以無錯誤地編譯和運行。
在這里你可以比較編譯器的輸出:https : //godbolt.org/z/55fMzh8qz
提前致謝。
uj5u.com熱心網友回復:
class在 using 陳述句中是不必要的,我認為 Visual Studio 認為您正在嘗試宣告以下專業化c:
template <>
class c<int>;
因此錯誤訊息。
所有你需要的是:
using o = c<int>;
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/362272.html
上一篇:禁用空型別的類模板成員?
下一篇:在模板中顯示11月的所有日期
