January 01, 2011

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. ]