」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 為什麼 GCC 4.6.1 難以處理 std::array 的初始化清單?

為什麼 GCC 4.6.1 難以處理 std::array 的初始化清單?

發佈於2024-12-22
瀏覽:833

Why Does GCC 4.6.1 Struggle with Initialization Lists for std::array?

在 std::array 中使用初始化清單

可以透過多種方式使用初始化清單建立 std::array。然而,GCC 4.6.1 嘗試此操作時可能會遇到錯誤。

初始化語法

使用初始化清單建立std::array 的語法為:

std::array array = { { value1, value2, ..., valueN } };

其中T 是陣列的元素類型,size是數組的大小,value1 到 valueN 是數組的初始值。

聚合初始化

std::array 是一個聚合結構體,可以聚合-已初始化。若要聚合初始化結構體中的陣列,請使用一組附加的大括號:

std::array<:string> strings = {{ "a", "b" }};

此語法避免了採用初始值設定項清單的建構函數,這可能會導致GCC中出現問題4.6.1.

編譯器問題

C 11 標準建議可以在聚合初始化中省略額外的大括號。因此,GCC 4.6.1 無法在沒有額外大括號的情況下編譯 std::array 的初始化清單可能是編譯器錯誤。

最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3