Kurucuların genel olarak atmasına izin verilir mi? Evet. mu?
Genel olarak, içinde hiçbir şey yapamayacağınız hiçbir şey atılmamalıdır. Hafıza ayırmamalı, başka bir kodu çağırmamalı ya da bunun gibi bir şey olmamalıdır. Bir hareket yapıcıyı yazmanın tek nedeni, başkasının bellek işaretçileri ve nesne referansları ile kaçamaktır. Birkaç temel türü kopyalamanız ve diğer nesnedeki değerleri silmeniz gerekir. Bu şeyler atmamalı.
İzin verilirken, bu iyi bir fikir değildir. Bunu yapıyorsanız, hareket operasyonlarınızda ne yaptığınızı yeniden düşünün.
Standartta, yapıcıların atmasına izin verilmemesiyle ilgili hiçbir şey görmedim, ancak şunu gördüm: "X sınıfı için örtülü olarak bildirilen hareket oluşturucu, " X :: X (X &&) "biçiminde olacaktır. "ve orada" noexcept "göremiyorum. –
Son taslakta, herhangi bir işlev için "noexcept" ifadesini göremiyorum ... – ronag
@ronag: Baktığınızdan emin misin? Çünkü N3337'yi açtım ve sadece “noexcept” kelimesini aradım ve hemen bir sınıfın “swap” işlevini aldım. –