我正在處理C++ 03的元組類。我希望能夠從列表構造它,這是因爲元組的長度可能會變化而變得棘手。在C++中建模初始化器列表03
#ifndef N_TUPLE_H
#define N_TUPLE_H
template <typename T, int N>
class N_Tuple
{
public:
N_Tuple(T values[N]);
private:
T values_[N];
};
template <typename T, int N>
N_Tuple< T, N >::N_Tuple(T values[N])
{
for (int i = 0; i != N; ++i)
values_[i] = values[i];
}
#endif
目前,我必須這樣做:
int arr[] = { 0, 1, 2 };
N_Tuple< int, 3 > t(arr);
似乎笨重,不太人性化。是否有可能在C++ 03中將其減少到一行?
在此先感謝。
根據http://stackoverflow.com/questions答案/ 13267277/where-can-we-use-list-initialization「在C++ 03中,您只能使用列表初始化進行聚合(C++ 03 [dcl.init.aggr])和標量(C++ 03 [ DCL。init]/13)類型「這意味着你不能爲數組做什麼。」 –
@JerryJeremiah *「這意味着你不能爲數組做這件事。」* Huh?數組*。* – dyp
我一定讀過錯誤的n ...對不起, –