boost::unordered_map
'da bir değer türü olması gereken belirli bir tür için hareket yapıcılarını (kopya yapıcısı yok) uygulamak istiyorum. Bu tür Composite
diyelim.Yapıcıyı ve başlatma listesini taşıma
struct Base
{
Base(..stuff, no default ctor) : initialization list {}
Base(Base&& other) : initialization list {}
}
struct Composite
{
Base member;
Composite(..stuff, no default ctor) : member(...) {}
Composite(Composite&& other) : member(other.member) {} // <---- I want to make sure this invokes the move ctor of Base
}
Bu yüzden boost::unordered_map< Key , Composite >
kopya kurucu gerektirmez yazmak istiyorum ve sadece hareket yapıcısı kullanır:
Composite
aşağıdaki imzası vardır. Mümkünse, Composite
hareket yapıcısının başlatıcı listesinde Base
kopya kurucusunu kullanmak istemiyorum.
Bu mümkün mü?
+1. – mavam
@MatthiasVallentin: Bu terim Scott Meyers tarafından yerinde yapıldı. Standartlar komitesi, günümüzde "yönlendirme referansı" terimini tercih ediyor. –
Neredeyse iki yıldır, topluluğun istikrarlı bir dönem boyunca birleştiğini görmekten memnuniyet duyuyoruz. – mavam