共用方式為


編譯器錯誤 C2800 至 C2899

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

重要

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++ 說明與社群

錯誤訊息

錯誤 訊息
編譯器錯誤 C2800 無法多載「運算子運算子
編譯器錯誤 C2801 成員」必須是非靜態成員
編譯器錯誤 C2802 靜態成員 'operator operator' 沒有型式參數
編譯器錯誤 C2803 「運算子運算子」至少必須擁有一個類別類型的型式參數
編譯器錯誤 C2804 二進位 'operator operator' 的參數太多
編譯器錯誤 C2805 二進位 'operator operator' 的參數太少
編譯器錯誤 C2806 二進位「運算子運算子」的型式參數太多
編譯器錯誤 C2807 後置 'operator operator' 的第二個型式參數必須是 'int'
編譯器錯誤 C2808 一元 'operator operator' 的型式參數太多
編譯器錯誤 C2809 'operator operator' 沒有型式參數
編譯器錯誤 C2810 'interface': 介面只可以繼承自另一介面
編譯器錯誤 C2811 'type1': 不可繼承自 'type2',參考類別只能繼承自參考類別或介面類別
編譯器錯誤 C2812 不支援將 #import 配合 /clr:pure 或 /clr:safe 使用
編譯器錯誤 C2813 使用 /MP 時不支援 #import
編譯器錯誤 C2814 member': 原生類型不可以巢狀方式置於 受控或 WinRT 類型 'class'中
編譯器錯誤 C2815 'operator delete': 第一個型式參數必須是 'void *',但使用的是 'type'
編譯器錯誤 C2816 類似函式的巨集 'identifier' 的引動過程遺漏結尾的 ')'
編譯器錯誤 C2817 'operator delete' 的傳回類型必須是 'void'
編譯器錯誤 C2818 多載 'operator ->' 的應用會透過類型 'class' 遞迴
編譯器錯誤 C2819 類型 'class' 沒有多載成員 'operator ->'
編譯器錯誤 C2820 已過時。
編譯器錯誤 C2821 'operator new' 的第一個型式參數必須是 'size_t'
編譯器錯誤 C2822 在這個平台上不支援區域回溯
編譯器錯誤 C2823 typedef 範本/泛型不合法
編譯器錯誤 C2824 'operator new' 的傳回類型必須是 'void *'
編譯器錯誤 C2825 'identifier': 後面接 '::' 時必須是類別或命名空間
編譯器錯誤 C2826 已過時。
編譯器錯誤 C2827 'operator operator' 不可以使用一元形式進行全域覆寫
編譯器錯誤 C2828 'operator operator' 不可以使用一元形式進行全域覆寫
編譯器錯誤 C2829 'operator operator' 不可以擁有變數參數清單
編譯器錯誤 C2830 只有 'operator new' 的位置參數可以有預設值
編譯器錯誤 C2831 'operator operator' 不可以有預設參數
編譯器錯誤 C2832 'identifier': 參考類型不得使用值進行初始化
編譯器錯誤 C2833 'operator token' 不是可辨認的運算子或類型
編譯器錯誤 C2834 'operator operator' 必須是全域合格 (在 Visual Studio 2022 中已過時)。
編譯器錯誤 C2835 使用者定義轉換 'type' 沒有使用型式參數
編譯器錯誤 C2836 'identifier': 聯合體中只有一個非靜態資料成員可有預設成員初始設定
編譯器錯誤 C2837 'function': 無法在相同函式中使用 OpenMP 指示詞和 #pragma 迴圈 (hint_parallel)
編譯器錯誤 C2838 'identifier':成員宣告中的限定名稱不合法
編譯器錯誤 C2839 多載 'operator ->' 的無效的傳回型別 'type'
編譯器錯誤 C2840 指令文字引數不是常數
編譯器錯誤 C2841 登錄引數不是常數
編譯器錯誤 C2842 'class': 受控/WinRT 類型不可以定義其自身的 'operator new' 或 'operator delete'
編譯器錯誤 C2843 'member': 無法取得 受控/WinRT 類型的非靜態資料成員或方法的位址
編譯器錯誤 C2844 'identifier': 不可為介面 'interface'的成員
編譯器錯誤 C2845 'type': 這個類型上不允許指標算術
編譯器錯誤 C2846 'interface': 介面不可以有建構函式
編譯器錯誤 C2847 無法將 sizeof 套用於受控/WINRT 類型 'class'
編譯器錯誤 C2848 'class': 受控/WINRT 類型不可為聯合體的成員
編譯器錯誤 C2849 'interface': 介面不可以有建構函式
編譯器錯誤 C2850 'construct': 只能用於檔案範圍,不能用於巢狀結構中
編譯器錯誤 C2851 'enum': 公用 WinRT 列舉只能使用 'int' 或 'unsigned int' 做為基底類型
編譯器錯誤 C2852 'identifier': 只有資料成員可以在類別內初始化
編譯器錯誤 C2853 'identifier': 非靜態資料成員不能有包含 'auto' 的類型
編譯器錯誤 C2854 在 #pragma hdrstop 中發生語法錯誤
編譯器錯誤 C2855 命令列選項 'option' 和先行編譯標頭檔不一致
編譯器錯誤 C2856 #pragma hdrstop 不可以在 #if 區塊內
編譯器錯誤 C2857 在來源檔案中找不到以 /Ycfilename 命令列選項指定的 '#include' 陳述式
編譯器錯誤 C2858 命令行選項 '/Yc (/Fdfilename)' 與先行編譯標頭檔不一致,其使用 '/Fdfilename' (Visual Studio 2022 中已過時)。
編譯器錯誤 C2859 filename 不是建立此先行編譯標頭檔時使用的 filetype 檔案,請重新建立先行編譯標頭檔。
編譯器錯誤 C2860 除了 '(void)' 之外,'void' 不能做為函數參數使用
編譯器錯誤 C2861 'declaration': 無法定義介面成員函式
編譯器錯誤 C2862 'interface': 介面只可以有公用成員
編譯器錯誤 C2863 'interface': 介面不可以有朋友
編譯器錯誤 C2864 'identifier': 具有類別內初始設定式的靜態資料成員/範本變數,必須有非動態的常數 整數類型
編譯器錯誤 C2865 'operator': 物件指標/控制代碼的非法比較
編譯器錯誤 C2866 已過時。
編譯器錯誤 C2867 'identifier': 不是命名空間
編譯器錯誤 C2868 'identifier': using-declaration 的非法語法;需要限定名稱
編譯器錯誤 C2869 'identifier': 已經定義為命名空間
編譯器錯誤 C2870 'identifier': 命名空間定義必須出現在檔案範圍,或立即出現在其他命名空間定義中
編譯器錯誤 C2871 'identifier': 此名稱的命名空間不存在
編譯器錯誤 C2872 'identifier': 模棱兩可的符號
編譯器錯誤 C2873 'symbol': 不可以在 using-declaration 中使用符號
編譯器錯誤 C2874 using-declaration 會造成 'identifier' 的多重宣告
編譯器錯誤 C2875 using-declaration 會導致 'class::identifier' 的多個宣告 (在 Visual Studio 2022 中過時)。
編譯器錯誤 C2876 'class::member': 並非所有多載都可以存取
編譯器錯誤 C2877 無法從 'class' 存取 'member'
編譯器錯誤 C2878 'identifier': 此名稱的命名空間或類別不存在
編譯器錯誤 C2879 'identifier': 只有現有的命名空間可以由命名空間別名定義授與不同的名稱
編譯器錯誤 C2880 __swi 或 __hvc 必須以有效的常數做為第一個引數 (SWI 編號)
編譯器錯誤 C2881 'identifier': 已經用來當做 'class' 的別名
編譯器錯誤 C2882 'identifier': 運算式中命名空間識別項的不合法使用
編譯器錯誤 C2883 'function': 函式宣告與由 using-declaration 引入的 'identifier' 相衝突
編譯器錯誤 C2884 'identifier': 由 using-declaration 引入但和區域函式 'function' 相衝突
編譯器錯誤 C2885 'class::identifier': 不是非類別範圍的有效 using-declaration
編譯器錯誤 C2886 'class::identifier': 不能在成員 using-declaration 中使用符號
編譯器錯誤 C2887 __swi 或 __hvc 不可擁有超過五個引數 (SWI 編號,r0 - r3)
編譯器錯誤 C2888 'identifier': 無法在命名空間 'namespace' 中定義符號
編譯器錯誤 C2889 'class': 受控/WinRT 類別類型不可為虛擬基底類別
編譯器錯誤 C2890 'class': 參考類別只能有一個非介面基底類別
編譯器錯誤 C2891 'parameter': 無法取得範本參數的位址
編譯器錯誤 C2892 本機類別不應有成員範本
編譯器錯誤 C2893 無法特製化函式範本 'template'
編譯器錯誤 C2894 不可以宣告範本擁有 'C' 連結
編譯器錯誤 C2895 'declaration': 無法明確具現化已經以 dllimport 宣告的函式樣板
編譯器錯誤 C2896 'function1': 無法使用函式範本/泛型 'function2' 作為函式引數 (Visual Studio 2022 中過時)。
編譯器錯誤 C2897 解構函式/完成項不可為函式範本
編譯器錯誤 C2898 'declaration': 成員函式範本不可為虛擬
編譯器錯誤 C2899 已過時。

另請參閱

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