Tutti!È delete [] uguale a per elemento delete. C++
Diciamo che sto scrivendo la classe Array e vogliono ottimizzare la costruzione
data = reinterpret_cast<T*>(new char[sizeof (T) * size]);
for (int i = 0; i < size; ++i) {
new(&data[i]) T(some_value);
}
E ora mi chiedo come liberare la memoria in modo corretto:
delete[] data;
for (int i = 0; i < size; ++i) { data_[i].~T(); }
Si sta tentando di riscrivere ['std :: array'] (http://en.cppreference.com/w/cpp/container/array)? – NathanOliver
Cosa succede se l'array allocato non è l'allineamento corretto per T? –
@NathanOliver, certo che non sto provando a fare questo :-) Questa è tutta la mia curiosa immaginazione. – aob