此文件區段的文章會說明編譯器所產生錯誤訊息的子集。
重要
Visual Studio 編譯器及建置工具可以報告許多類型的錯誤和警告。 發現錯誤或警告後,建置工具可能會假設程式碼意圖並嘗試繼續執行,以便可以同時報告更多問題。 如果工具做的假設有誤,那麼後來的錯誤或警告可能不適用於您的專案。 當您修正專案中的問題時,請務必從系統回報的第一個錯誤或警告開始,並經常重新建置。 一個修正程式可能會解決多個後續錯誤。
若要取得 Visual Studio 中特定診斷訊息的說明,請在 [輸出] 視窗中選取該訊息,然後按下 F1 鍵。 如果存在,Visual Studio 會開啟該錯誤的文件頁面。 您也可以使用頁面頂端的搜尋工具來尋找有關特定錯誤或警告的文章。 或者,您也可以在本頁的目錄中,依工具和類型瀏覽錯誤與警告清單。
注意
並非每個 Visual Studio 錯誤或警告都有記載。 在許多情況下,診斷訊息會提供所有可用的資訊。 如果您登陸此頁面並認為錯誤或警告訊息需要其他說明,請使用此頁面的意見反應按鈕讓我們知道。 如果您認為錯誤或警告有誤,或發現工具組有其他問題,請在開發人員社群網站上回報產品問題。 您也可以傳送意見反應,並在 IDE 內輸入錯誤。 在 Visual Studio 中,移至功能表欄,然後選擇 [說明] > [傳送意見反應] > [回報問題],或使用 [說明] > [傳送意見反應] > [建議功能]來提交建議。 已建立某些編譯器錯誤主題,但這些錯誤不會由編譯器發出,因此現在會改為重新導向至此頁面。
您可以在 Microsoft Q&A C++ 論壇中找到其他關於錯誤和警告的協助。 或者,在 Visual Studio C++ 開發人員社群網站上搜尋錯誤或警告號碼。 您也可以搜尋 Stack Overflow 以尋找解決方案。
如需其他說明和社群資源的連結,請參閱 Visual C++ 說明與社群。
錯誤訊息
| 錯誤 | 訊息 |
|---|---|
| 編譯器錯誤 C2900 | 'declarator': WinRT 類別中的成員函式範本必須是 'private'、'internal' 或 'protected private' |
| 編譯器錯誤 C2901 | 'identifier': 泛型介面或委派不能是公用的 |
| 編譯器錯誤 C2902 | 'token': 'template/generic' 後方有非預期的 token,應為識別碼(在 Visual Studio 2022 中已過時。) |
| 編譯器錯誤 C2903 | 'identifier': 符號不是類別範本/泛型,也不是函式範本/泛型 |
| 編譯器錯誤 C2904 | 'identifier': 此名稱已用於目前作用域中的樣板 |
| 編譯器錯誤 C2905 | 已過時。 |
| 編譯器錯誤 C2906 | 'template': 顯式特化必須使用 'template <>' |
| 編譯器錯誤 C2907 | 暫存器引數 'number' 未指定有效的暫存器編號 |
| 編譯器錯誤 C2908 | 明確特化;'template' 已經實體化 |
| 編譯器錯誤 C2909 | 'identifier': 函式範本的明確具現化必須有傳回類型 |
| 編譯器錯誤 C2910 | 'function': 無法明確地特製化 |
| 編譯器錯誤 C2911 | 'member': 無法在目前的範圍中宣告或定義 |
| 編譯器錯誤 C2912 | 明確特化 '宣告' 不是函式範本的特化 |
| 編譯器錯誤 C2913 | 明確特化;'declaration' 不是類別範本的特化 |
| 編譯器錯誤 C2914 | 'identifier': 無法推算範本/泛型引數,因為函式引數模稜兩可 |
| 編譯器錯誤 C2915 | 'identifier': 'type' 不能直接在 WinRT 類型的已發行介面上使用。 請改用 'Platform::Object^' 傳遞此類型 |
| 編譯器錯誤 C2916 | 'identifier': [FlagsAttribute] 只能指定給基礎型別為 'unsigned int' 的公用列舉類型 |
| 編譯器錯誤 C2917 | 'identifier': 無效的範本參數 (在 Visual Studio 2022 中已過時。) |
| 編譯器錯誤 C2918 | 'identifier': 索引屬性不得用於 WinRT 類型的已發佈介面上 |
| 編譯器錯誤 C2919 | 'type': 運算子無法用於 WinRT 類型的公開介面上 |
| 編譯器錯誤 C2920 | 重新定義:'type':類別範本/泛型已宣告為 'declaration' |
| 編譯器錯誤 C2921 | 重新定義:'type':類別範本/泛型卻被重新宣告為 'declaration' |
| 編譯器錯誤 C2922 | 'interface': WinRT 介面不能包含靜態成員 |
| 編譯器錯誤 C2923 | 'type': 對參數 'parameter' 而言,'identifier' 不是有效的範本/泛型型別引數 |
| 編譯器錯誤 C2924 | __declspec(interrupt) 常式引數不在 R2 中 |
| 編譯器錯誤 C2925 | __declspec(interrupt) 常式不可使用浮點 |
| 編譯器錯誤 C2926 | 'identifier': 不允許為聯集內匿名結構中的成員使用預設成員初始設定式 |
| 編譯器錯誤 C2927 | 'identifier': 呼叫函式範本必須至少有一個引數 |
| 編譯器錯誤 C2928 | 明確具現化; 'identifier' 不是函式或範本類別 'class' 的靜態資料成員 |
| 編譯器錯誤 C2929 | 'declarator': 顯式具現化;無法顯式強制或抑制範本類別成員的具現化 |
| 編譯器錯誤 C2930 | 'class': template-id/generic-id 重新定義為 'enum identifier' 的列舉值 |
| 編譯器錯誤 C2931 | 'class1': template-id/generic-id 重新定義為 'class2' 的成員函式 (在 Visual Studio 2022 中已過時。) |
| 編譯器錯誤 C2932 | 'type': template-id/generic-id 重新定義為 'identifier' 的資料成員 (在 Visual Studio 2022 中已過時。) |
| 編譯器錯誤 C2933 | 'type': template-id/generic-id 重新定義為 'identifier' 的 typedef 成員 (在 Visual Studio 2022 中已過時。) |
| 編譯器錯誤 C2934 | 'type': template-id/generic-id 重新定義為巢狀於 'identifier' 的 'item' (在 Visual Studio 2022 中已過時。) |
| 編譯器錯誤 C2935 | 'type': template-id/generic-id 重新定義為全域函式 (在 Visual Studio 2022 中已過時。) |
| 編譯器錯誤 C2936 | 'type': template-id/generic-id 重新定義為全域資料變數 (在 Visual Studio 2022 中已過時。) |
| 編譯器錯誤 C2937 | 'type': template-id/generic-id 重新定義為全域型別定義(在 Visual Studio 2022 中已淘汰。) |
| 編譯器錯誤 C2938 | 'identifier': 無法特製化別名範本 |
| 編譯器錯誤 C2939 | 'type': 範本識別碼/泛型識別碼已重新定義為區域資料變數 (在 Visual Studio 2022 中已過時。) |
| 編譯器錯誤 C2940 | 'type': template-id/generic-id 重新定義為區域 typedef(已在 Visual Studio 2022 中淘汰。) |
| 編譯器錯誤 C2941 | 'type':範本識別碼/泛型識別碼重新定義為區域 'item'(已在 Visual Studio 2022 中淘汰。) |
| 編譯器錯誤 C2942 | 'type': template-id/generic-id 重新定義為函式的正式引數 (在 Visual Studio 2022 中已過時。) |
| 編譯器錯誤 C2943 | 'type': template-id/generic-id 重新定義為範本的型別引數 (在 Visual Studio 2022 中已過時。) |
| 編譯器錯誤 C2944 | 'type': template-id/generic-id 重新定義為範本的值引數 (在 Visual Studio 2022 中已過時。) |
| 編譯器錯誤 C2945 | 顯式實例化並非指模板類別特化 |
| 編譯器錯誤 C2946 | 明確實體化;'type' 不是範本類別特化 |
| 編譯器錯誤 C2947 | 預期 '>' 會終止範本引數,找到 'token' |
| 編譯器錯誤 C2948 | 明確具現化; 在特製化上不允許儲存類別規範 'specifier' |
| 編譯器錯誤 C2949 | thread_local 不受 /kernel 支援 |
| 編譯器錯誤 C2950 | 已過時。 |
| 編譯器錯誤 C2951 | 只允許在全域、命名空間,或類別範圍使用範本/泛型宣告 |
| 編譯器錯誤 C2952 | 'declaration': 範本/泛型宣告遺漏了範本/泛型參數清單 |
| 編譯器錯誤 C2953 | 'type': 類別範本已經定義過了 |
| 編譯器錯誤 C2954 | 指令文字引數不在範圍中 |
| 編譯器錯誤 C2955 | 'type': 使用類別範本/泛型時需要範本/泛型引數清單 |
| 編譯器錯誤 C2956 | 一般的解配置函式 'function' 會被選為 placement 解配置函式。 |
| 編譯器錯誤 C2957 | 'token': 左分隔符號無效: 必須是 '<' |
| 編譯器錯誤 C2958 | 在 'file(line_number)' 找到的左側 分隔符號 未正確配對 |
| 編譯器錯誤 C2959 | 泛型類別或函式不可為範本的成員 |
| 編譯器錯誤 C2960 | 已過時。 |
| 編譯器錯誤 C2961 | 'function': 明確具現化不一致,之前的明確具現化未指定 'argument' |
| 編譯器錯誤 C2962 | 語法錯誤: 'token': 預期範本類別成員函式定義應以 '}' 結尾 |
| 編譯器錯誤 C2963 | 已過時。 |
| 編譯器錯誤 C2964 | 已過時。 |
| 編譯器錯誤 C2965 | __declspec(specifier) 不受 /kernel 支援 |
| 編譯器錯誤 C2966 | 'identifier1': 必須與基底類別 'identifier2' 具有相同的 __declspec(code_seg(...)) (在 Visual Studio 2022 中已過時。) |
| 編譯器錯誤 C2967 | 'identifier':覆寫虛擬函式必須具有與被覆寫的虛擬函式相同的 __declspec(code_seg(...))(已在 Visual Studio 2022 中淘汰。) |
| 編譯器錯誤 C2968 | 'identifier': 遞迴的別名宣告 |
| 編譯器錯誤 C2969 | 語法錯誤: 'token': 預期成員函式定義應以 '}' 結尾 |
| 編譯器錯誤 C2970 | 'type': 範本參數 'parameter': 'argument': 運算式中包含具有內部連結的物件,不能用作非型別引數 |
| 編譯器錯誤 C2971 | 'type': 範本參數 'parameter': 'argument': 具有非靜態儲存期的變數不能用作非型別引數使用 |
| 編譯器錯誤 C2972 | 'type': 範本參數 'parameter': 非型別引數的類型無效 |
| 編譯器錯誤 C2973 | 'template': 無效的範本引數 'number' |
| 編譯器錯誤 C2974 | 'type': 'parameter' 的範本/泛型引數無效,必須是類型 |
| 編譯器錯誤 C2975 | 'type': 'parameter' 的範本引數無效,應為編譯期常數運算式 |
| 編譯器錯誤 C2976 | 'type': 範本/泛型引數太少 |
| 編譯器錯誤 C2977 | 'type': 範本/泛型引數太多 |
| 編譯器錯誤 C2978 | 語法錯誤: 必須是 'keyword1' 或 'keyword2',但找到的是類型 'type'; 泛型中不支援非類型參數 |
| 編譯器錯誤 C2979 | 泛型不支援顯式特化 |
| 編譯器錯誤 C2980 | C++ 例外狀況處理不支援 /kernel |
| 編譯器錯誤 C2981 | /kernel 不支援 'keyword' 的動態形式 |
| 編譯器錯誤 C2982 | 'declaration': 使用了不同的 __declspec(code_seg(...)):先前為 'identifier1',現在為 'identifier2' |
| 編譯器錯誤 C2983 | 'name':定義必須與先前的聲明相同__declspec(code_seg(...)) |
| 編譯器錯誤 C2984 | 已過時。 |
| 編譯器錯誤 C2985 | 'argument': __declspec(code_seg(...)) 的引數必須為文字區段 |
| 編譯器錯誤 C2986 | '__declspec(code_seg(...))'只能應用於類別或函數 |
| 編譯器錯誤 C2987 | 宣告不能含有 __declspec(code_seg('identifier')) 和 __declspec(code_seg('value')) |
| 編譯器錯誤 C2988 | 無法辨認的範本宣告/定義 |
| 編譯器錯誤 C2989 | 'class': 類別範本/泛型已宣告為非類別範本/泛型 |
| 編譯器錯誤 C2990 | 'class': 非類別範本/泛型已宣告為類別範本/泛型 |
| 編譯器錯誤 C2991 | 範本/泛型參數 'parameter' 重複定義 |
| 編譯器錯誤 C2992 | 'class': 範本/泛型參數清單無效或遺漏 |
| 編譯器錯誤 C2993 | 'type': 非類型範本參數 'identifier' 的不合法類型 |
| 編譯器錯誤 C2994 | 在樣板參數清單中未命名的類別 |
| 編譯器錯誤 C2995 | 'declaration': 函式範本已經定義過了 |
| 編譯器錯誤 C2996 | 'function': 遞迴函式範本定義 |
| 編譯器錯誤 C2997 | 'function': 無法從預設成員初始設定式推算陣列界限 |
| 編譯器錯誤 C2998 | 'identifier':不能是範本定義 |
| 編譯器錯誤 C2999 | 模板具現化深度已超過上限 depth(請參閱 '/templateDepth:N') |