++ aşağıdaki kod derleyici hata veriyor olur:Yokediciler (Char vb int, ..) C
typedef int myint;
void destruct2 (myint * item)
{
item->~myint();
}
İkinci kod neden çalışıyor? Bir int, sadece yazıldığından dolayı bir yıkıcı alır mı?
Bunu neden yapmak istediğini merak ediyorsanız: Bu, C++ kodunun yeniden düzenlenmesiyle ilgilidir. Standart yığını kaldırıyor ve kendinden yapay havuzlarla değiştiriyoruz. Bu, yeni yerleşimi ve yıkıcıları aramamızı gerektirir. İlkel türler için yıkıcıları çağırmanın yararsız olduğunu biliyorum, ancak yine de POD'ları gerçek sınıflarla değiştirmemiz durumunda bunların kodda olmasını istiyoruz.
Çıplak int'nin işe yaramadığını, ancak yazılanların yaptıklarını öğrenmek oldukça sürpriz oldu.
BTW - Şablon işlevlerini içeren bir çözüm var. Sadece şablonun içine yazdık ve her şey yolunda.
+1. – ApprenticeHacker
Sanırım bu, std :: is_destructible öğesini eski derleyicilerde tutarsız kılar (2012-2014) – GameDeveloper
Bu cevabı yeterince oylayamıyorum! – Nils