共用方式為


編譯器錯誤 C2760

語法錯誤:必須是 'name1' 而非 'name2'
語法錯誤:非預期的令牌 'token1',預期的 'token2'
語法錯誤:'token1' 在此未預期;預期的 'token2'

備註

有數種方式可造成此錯誤。 通常是由編譯程式無法理解的令牌順序所造成。

範例

在此範例中,轉換運算符會與無效的運算元搭配使用。

// C2760.cpp
class B {};
class D : public B {};

void f(B* pb) {
    D* pd1 = static_cast<D*>(pb);
    D* pd2 = static_cast<D*>=(pb);  // C2760
    D* pd3 = static_cast<D*=(pb);   // C2760
}

在 或更新版本或 下/Zc:lambda提供/std:c++20的新 Lambda 處理器,可在泛型 Lambda 中啟用一些新的一致性模式語法檢查。 舊版 Lambda 處理器會編譯此程式代碼,但新的 Lambda 處理器會產生錯誤 C2760:

void f() {
    auto a = [](auto arg) {
        decltype(arg)::Type t; // C2760 syntax error: unexpected token 'identifier', expected ';'
    };
}

此範例顯示編譯程式現在強制執行的正確語法,其適用於所有 /std 模式:

void f() {
    auto a = [](auto arg) {
        typename decltype(arg)::Type t;
    };
}