我需要將參數傳遞給一個包裝類,看起來小例子是這樣的:的std :: initializer_list作爲的std ::數組構造
template<class TStack, unsigned int TBins>
class Wrapper : Stack<......>
{
std::array<TStack, TBins> m_oStacks;
template<typename ... Args>
Wrapper(std::initializer_list<const unsigned int> const& size, Args&&... args)
: Stack<.......>(args), m_oStacks{5,2,3,4,5,6,7,8,9,10}
//, m_oStacks(size) //,m_oStacks{size} //,m_oStacks{{size}}
{
//m_oStacks = { size };
}
};
我試圖初始化與initializer_list的大小,但沒有什麼工作數組(註釋部分來源)只有常量{5,2,3,4,5,6,7,8,9,10}部分
有人知道原因和解決辦法嗎?
真誠 Matyro
編輯1:主要的問題是,T堆確實(在大多數情況下)沒有默認的構造函數,因此我需要在施工
@Matyro類的std ::陣列不具有接受initializer_list的構造函數。您應該自己複製array中的initializer_list。 –
使用'std :: array'代替'std :: initializer_list ',它也可以被列表初始化,並且'std :: array'本身也有一個拷貝構造函數 –
該解決方案工作正常,thx – Matyro