Visual Studio 2015 中的編譯器錯誤C2280「嘗試引用已刪除的函數」
Visual Studio 2015 編譯器與其2013 年的編譯器前身不同,自動為定義移動建構子或移動賦值運算子的類別產生刪除的複製建構子。 C 標準強制執行此行為,以防止在首選移動的情況下發生意外複製。
在您的程式碼片段中,類別 A 有一個移動建構函式 A(A &&),這又表示刪除的副本建構函式按照標準。因此,main 中的新 A(a) 表達式會觸發錯誤 C2280。
要解決此問題,您可以在 A:
中明確聲明複製建構子。或者,如果您真的想要停用複製而只允許移動,您可以將複製建構函式和複製賦值運算子宣告為已刪除:
記住,如果您選擇停用複製,您還需要聲明移動賦值運算子和析構函數遵守五法則。
以上是為什麼我在 Visual Studio 2015 中收到編譯器錯誤 C2280「嘗試引用已刪除的函數」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!