Temel olarak, T value
değişkenine ve T
bir T
dönüştüren bir işlev new (&value) T(func(value))
yapabilir miyim? Aynı yeri yeniden yazmanın sorun yaratabileceğinden emin değilim. Eski value
, func(value)
bitirmeden önce üzerine yazabilir mi?C++ yerinde yerleştirme yeni
GÜNCELLEME: Bunu bir kuyruk yinelemeyi döngü içine döndürmeyi denemek için yapıyorum (derleyiciler, önemsiz olmayan yıkıcı nedeniyle onu optimize edemezler). Yeni yerleşimden daha iyi olan yöntemler, karşılamadan daha fazlasıdır!
Neden basitçe 'value = func (value);'? – Jarod42
@ Jarod42 'T', kopyalanabilir (veya taşınamaz) atanabilir olmayabilir. –
Yani, T 'arayüzünü atlamaya çalışın:/... Ayrıca, yeni değerle birlikte' value 'destructor'ını çağırmayı da unutmayın. – Jarod42