2009-02-18 27 views
5
std::sort(range(c)); 

C++ 0x: Standart algoritmalar için aralık aşırı yükleri?

std::sort(c.begin(), c.end(); 

aksine standart algoritmaları için aralık aşırı yükleri sağlamak için bir sonraki standart bekliyor musunuz?

Boost'un range iterators benzerleridir ve TC++ PL3e'de belirtilen Bjarne Stroustrup'un iseq() s aynı fikirdir. the latest draft I could find'a baktım ama belirtilen aşırı yükleri görmedim.

+0

DÜZENLEME: Bunu buldum: www-sop.inria.fr/geometrica/events/WG21_meeting_june_2008/Stroustrup_C++0x_overview.ppt (veya s/ppt $/pdf /). Haziran 2008'de Stroustrup tarafından WG21 toplantısında verilen bir konuşmadan. 30 slaydında bu aşırı yüklerden bahseder, ancak standart için planlanıp tasarlanmadıkları belli değildir. – wilhelmtell

cevap

4

History sayfa kısmi bir yanıt sağlar.

std ad boşluğuna aşırı yükleme eklenmesi zorunluluğu vardır. Not, bu bir Kitaplık Sorunu. Daha önce herhangi birinin bu kitaplığı eklemek için istekte bulunup bulunmadığını bulmak için arşivlerde arama yapabilirsiniz. Eğer yoksa bir kusur raporu gönderebilirsiniz. Mevcut dil, herhangi bir şekilde kendi sarmalayıcılarınızı yazmanızı engellemez. Yani, soru başkalarının da bu bir standart kütüphane destekli özellik olarak isteyip istemeyeceğini ya da olmasın aşağı kaynar. Ama hepsi bu kadar değil. Kütüphaneye bile herhangi bir uzantı, sadece teknik bir seçim değil, aynı zamanda birçok başka jeopolitik konu tarafından yönlendirilmektedir. Bunu elde etmek için belirli bir oy sayısına sahip olmanız gerekmektedir.

Açıkçası bunu görmeyi çok isterim. Ancak, bunu hiçbir şekilde unutmayın, kütüphanenin yapamayacağı bir roman/çekirdek özelliği yoktur. olmadan. Yani parmaklarını çapraz tut.

+1

Sanırım okunabilir ve özlü kod, kavramların oy kullandığı açık ve özlü hata mesajlarından daha az önemli ve önemli değildir (dilde bir değişiklik!). Aralığın STL kullanımını teşvik edeceğini düşünüyorum. Umarım C++ Standartları komitesindeki insanlar aynı düşünür. – wilhelmtell

+0

Standartta tek bir aşırı yüklemeyi yönetmek kolay bir iş değildir: Her derleyici sağlayıcısını çalışma zamanlarına yamaları sağlamak için kütüphaneleri içerir -> pazara artmış süre -> standart ya gecikme nedeniyle kabul edilmez ya da sonraki sürüm hazır ... Sürüklenme elde edersiniz – dirkgently

0

Aralık tabanlı aralık, Range kavramını kullanan bulabildiğim taslak standarttaki tek şeydir. Standart algoritmaların çoğunun Ranges'i destekleyebileceği doğal görünüyor, ama bağladığınız taslak standartta bundan bahsedilmiyor.

+0

Ayrıca TR2'deki Range kavramına göre bölüm 23'te tekrarlayıcılar vardır. – greyfade

İlgili konular