![]() |
Home | Libraries | People | FAQ | More |
有一個重要的關於構造函數的設計權衡:我們可以將 array 實現為一個「集合體」(參見 C++ 標準的 8.5.1, [dcl.init.aggr])。這就意味著:
一個數組能被一個大括號括起來的,逗號分隔的初始化列表初始化,初始化列表中的值按照容器中各元素的下標遞增的順序排列:
boost::array<int, 4> a = { { 1, 2, 3 } };
注意,如果初始化列表中的值少於元素的個數,則多餘的元素會被默認初始化(這樣,它就有了一個已定義的值)。
然而,這種方法也有它的劣勢:不傳遞初始化列表意味著元素有一個不確定的初始值,因為規則規定集合體應該:
無論如何,當前的實現使用了這個方法。
注意,對於與標準兼容的編譯器,可能會使用更少的大括號(根據標準的 8.5.1 (11))。也就是說,你可以像這樣初始化一個 array:
boost::array<int, 4> a = { 1, 2, 3 };
我感激任何有建設性的反饋。請注意:我沒有時間閱讀所有的 boost 郵件。因此,為了確保反饋能被我收到,請把關於這個類的每一封郵件發給我一份拷貝。
代碼就按照原樣提供,不帶有任何明顯的或隱含的授權。