共用方式為


編譯器錯誤 C2900 至 C2999

此文件區段的文章會說明編譯器所產生錯誤訊息的子集。

重要

Visual Studio 編譯器及建置工具可以報告許多類型的錯誤和警告。 發現錯誤或警告後,建置工具可能會假設程式碼意圖並嘗試繼續執行,以便可以同時報告更多問題。 如果工具做的假設有誤,那麼後來的錯誤或警告可能不適用於您的專案。 當您更正專案中的問題時,務必從所報告的第一個錯誤或警告開始進行。 一個修正程式可能會讓許多後續的錯誤消失。

若要取得 Visual Studio 中特定診斷訊息的說明,請在 [輸出] 視窗中選取該訊息,然後按下 F1 鍵。 如果存在,Visual Studio 會開啟該錯誤的文件頁面。 您也可以使用頁面頂端的搜尋工具來尋找有關特定錯誤或警告的文章。 或者,在此頁面上依照目錄中的工具和型別瀏覽錯誤與警告清單。

注意

並非每個 Visual Studio 錯誤或警告都有記載。 在許多情況下,診斷訊息會提供所有可用的資訊。 若您在使用 F1 時登陸此頁面,而且您認為錯誤或警告訊息需要額外的說明,請告訴我們。 您可以使用此頁面上的意見反應按鈕,在 GitHub 提出文件問題。 如果您認為錯誤或警告有誤,或發現工具組有其他問題,請在開發人員社群網站上回報產品問題。 您也可以傳送意見反應,並在 IDE 內輸入錯誤。 在 Visual Studio 中,移至功能表列,然後選擇 [說明] > [傳送意見反應] > [回報問題],或使用 [說明] > [傳送意見反應] > [傳送建議] 提交建議。 已建立某些編譯器錯誤主題,但編譯器未發出,現在會重新導向至此頁面。

您可以在 Microsoft Learn Q&A 論壇中找到針對錯誤和警告的其他協助。 或者,在 Visual Studio C++ 開發人員社群網站上搜尋錯誤或警告號碼。 您也可以搜尋 Stack Overflow 以尋找解決方案。

如需其他說明和社群資源的連結,請參閱 Visual C++ 說明與社群

錯誤訊息

錯誤 訊息
編譯器錯誤 C2900 'declarator': WinRT 類別中的成員函式範本必須是 'private'、'internal' 或 'protected private'
編譯器錯誤 C2901 'identifier': 泛型介面或委派不能是公用
編譯器錯誤 C2902 'token': 'template/generic' 後非預期的權杖,必須是識別碼 (在 Visual Studio 2022 中已過時。)
編譯器錯誤 C2903 'identifier': 符號不是類別範本/泛型,也不是函式範本/泛型
編譯器錯誤 C2904 'identifier': 目前的範圍中已經有範本使用了此名稱
編譯器錯誤 C2905 已過時。
編譯器錯誤 C2906 'template': 明確特製化必須有 'template <>'
編譯器錯誤 C2907 暫存器引數 'number' 未指定有效的暫存器編號
編譯器錯誤 C2908 明確特製化; 'template' 已經具現化
編譯器錯誤 C2909 'identifier': 函式範本的明確具現化必須有傳回類型
編譯器錯誤 C2910 'function': 無法明確地特製化
編譯器錯誤 C2911 'member': 無法在目前的範圍中宣告或定義
編譯器錯誤 C2912 明確特製化 'declaration' 不是函式範本的特製化
編譯器錯誤 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 redefinition: 'type': 類別範本/泛型已經宣告為 'declaration'
編譯器錯誤 C2921 redefinition: '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 重新定義為全域 typedef (在 Visual Studio 2022 中已過時。)
編譯器錯誤 C2938 'identifier': 無法特製化別名範本
編譯器錯誤 C2939 'type': template-id/generic-id 重新定義為本機資料變數 (在 Visual Studio 2022 中已過時。)
編譯器錯誤 C2940 'type': template-id/generic-id 重新定義為本機 typedef (在 Visual Studio 2022 中已過時。)
編譯器錯誤 C2941 'type': template-id/generic-id 重新定義為本機 '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 明確具現化 (Explicit Instantiation) 沒有參考至樣板類別 (Template-Class) 特製化
編譯器錯誤 C2946 明確具現化; 'type' 不是範本類別特製化
編譯器錯誤 C2947 預期 '>' 會終止範本引數,找到 'token'
編譯器錯誤 C2948 明確具現化; 在特製化上不允許儲存類別規範 'specifier'
編譯器錯誤 C2949 /kernel 不支援使用 thread_local
編譯器錯誤 C2950 已過時。
編譯器錯誤 C2951 只允許在全域、命名空間,或類別範圍使用範本/泛型宣告
編譯器錯誤 C2952 'declaration': 範本/泛型宣告遺漏了範本/泛型參數清單
編譯器錯誤 C2953 'type': 類別範本已經定義過了
編譯器錯誤 C2954 指令文字引數不在範圍中
編譯器錯誤 C2955 'type': 使用類別範本/泛型時需要範本/泛型引數清單
編譯器錯誤 C2956 將會選擇一般解除配置函式 'function' 作為位置解除配置函式。
編譯器錯誤 C2957 'token': 左分隔符號無效: 必須是 '<'
編譯器錯誤 C2958 在 'file(line_number)' 找到的左側 delimiter 未正確比對
編譯器錯誤 C2959 泛型類別或函式不可為範本的成員
編譯器錯誤 C2960 已過時。
編譯器錯誤 C2961 'function': 明確具現化不一致,之前的明確具現化未指定 'argument'
編譯器錯誤 C2962 語法錯誤: 'token': 必須是以 '}' 結尾的範本類別成員函式定義
編譯器錯誤 C2963 已過時。
編譯器錯誤 C2964 已過時。
編譯器錯誤 C2965 /kernel 不支援 __declspec(specifier)
編譯器錯誤 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 'keyword' 的動態表單不支援 /kernel
編譯器錯誤 C2982 'declaration': 使用了不同的 __declspec(code_seg(...)): 之前是 'identifier1' 現在是 'identifier2'
編譯器錯誤 C2983 'declaration': 所有宣告都必須有相同的 __declspec(code_seg(...))
編譯器錯誤 C2984 已過時。
編譯器錯誤 C2985 'argument': __declspec(code_seg(...)) 的引數必須為文字區段
編譯器錯誤 C2986 'identifier': __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 'declarator': 不可為範本定義

另請參閱

C/C++ 編譯器與建置工具錯誤與警告
編譯器錯誤 C2000 - C3999、C7000 - C7999