2016-12-08 38 views
0

std::optional提供轉發參數所擁有的對象的構造函數構造函數:爲什麼我們應該爲initializer_list的情況重載轉發構造函數?

template<class...Args> 
optional(in_place_t,Args&&...args) 

但它也提供了這種過載:

template<class U,class...Args> 
optional(in_place_t,initializer_list<U> l,Args&&...args) 

什麼是這最後的過載的好處是什麼?

+0

對不起關閉;我以爲你在問不同的事情。 –

回答

4

它允許你這樣做:

optional<vector<int>> o(in_place_t, {1, 2, 3, 4, 5}); 

這比要短得多:

optional<vector<int>> o(in_place_t, std::initializer_list<int>{1, 2, 3, 4, 5}); 
相關問題