Phobos'ta aralıklarla (aslında daha genel olarak şablonlarla) kullanılabilecek bazı yardımcı olanaklar var.
Bunlar aralık kullanan algoritmalarda işe yarayabilir. Örneğin ben aralık denemeleri yaparken ElementType'tan yararlandım.
ElementType: bir aralığın eleman türünü (yani front'un döndürdüğü türü) verir
hasMobileElements: elemanların sahipliği aktarılabilir mi (bundan tam emin değilim ama teknik olarak bir aralığın moveFront() işlevine sahip olup olmadığı anlamına geliyor. Eğer BidirectionalRange ise, ayrıca moveBack() de bulunmalı; ve eğer RandomAccessRange ise moveAt() de bulunmalı)
Sanıyorum bu, değer türlerinin (yani yapıların) üyelerinin sahipliğini başka bir nesneye aktarabilmeleri ile ilgili. Phobos'ta bunu kullanan örnek bulamadığım için emin olamıyorum.
hasSwappableElements: en azından bir ForwardRange olan aralığın elemanları değiş tokuş edilebilir mi (teknik olarak, 'swap(soldaki, sağdaki)' işlemi çalışır mı)
hasAssignableElements: en azından bir ForwardRange olan aralığın elemanları atanabilir mi (teknik olarak, 'r.front = e' işlemi çalışır mı)
hasLvalueElements: elemanları işlevlere referans olarak geçirilebilir mi ve elemanlarının adresleri alınabilir mi
hasLength: .length niteliği var mı
isInfinite: '.empty' niteliği derleme zamanında biliniyor mu ve 'false' mu (teknik olarak, 'static enum bool empty = false;' tanımlı mı)
hasSlicing: bir InputRange döndüren [ ] işleci tanımlı mı
Ali
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]
Permalink
Reply