Sabit olmayan, T sınıfı olmayan ve varsayılan olarak yapılamaz olan bir nesne var. Boyut sabit olduğu için unique_ptr
veya vector
yerine std::array
gibi bir dizi-ish kapsayıcı kullanmak istiyorum. Eğer yardımcı olabilsem, dolaylı ek katmandan kaçınmak istiyorum.Bir std :: dizisi <T, 2> nasıl başlatılır, burada T, kopyalanamaz ve varsayılan olarak yapılandırılamaz mı?
std::array<T, 2>
'u nasıl ilklendirebilirim? array<T, 2> {T(...), T(...)}
'u kullanarak, silinmiş kopya oluşturucusuyla ilgili bir hatayla sonuçlanır. array<T, 2> {move(T(...)), move(T(...))}
kullanmak, dizi öğelerini hareket ettiriciyi kullanmaya zorlamaz. std::array<T, 2>
doğal olarak işe yaramıyorsa, yerleştirme-yeni gibi ek bir dolaylı ya da manuel bellek yönetimi tekniklerine başvurmadan başka neler yapabilirim?
geldi bana. 'std :: array' T/etc için benzersiz/paylaşımlı ptr'leri ... –
@SamVarshavchik, Yine de std :: vector' işlevini, yalnızca varsayılan, yapılandırılmamış türlerde kullanabilirsiniz. – chris
Neyi başarmak istediğim, prensip olarak, yeni yerleştirme gibi karmaşık ve zor okunan tekniklerle de olsa, başarılabilir. Bir vektörün basit olacağını biliyorum ama bana prensipten kaçınmaktan kaçınmak için yola koyduğum ek yükü bana veriyor. – Syncopated