2014-06-15 25 views
16

4.9.0 sürüm here değiştirir GCC bakarken, aşağıdaki okumaya hoş bir sürpriz oldu; C++ için "Yeni Diller ve Dil belirli iyileştirmeler" bölümünde: §4.1.2 ve N3889: Concepts Lite Specification ait §5.1.1 tarafından belirtildiği gibiC++ 14 kısıtlanmamış genel işlevleri destekleyecek mi?

G ++ kısıtsız jenerik fonksiyonlarını destekler. Kısaca, otomatik genel lambdas benzer bir kapalı fonksiyon şablon parametresi beslenmesi için herhangi bir fonksiyon Bildiricisi bir parametre bildiriminde bir tip-belirleyici olarak kullanılabilir.

// the following two function declarations are equivalent 
auto incr(auto x) { return x++; } 
template <typename T> 
auto incr(T x) { return x++; } 

Ben GCC 4.9.0 inşa edilmiş ve beklendiği gibi benim ilk testler çalıştı. Kavramlar Lite'un yaklaşan C++ 14 şartnamesine bir şekilde yardımcı olacağını düşünüyorum. C++ 'nın parçası olmak için "kısıtsız genel işlevler" için herhangi bir plan var mı?

+2

gelecekteki bir sürümüne dahil edilmeden önce Bu bize öğrenmek ve deneyime dayalı her özelliğin tasarımını ayarlamanızı sağlayan dek C++ 17 Neredeyse bunu C++ 14'te yapabilirsiniz: 'auto incr = [] (auto x) {return x ++;}; – chris

+0

Cheers chris. Evet, bunun farkındayım. – user2023370

+0

Ben standart son taslakta 'N3889' arasında' 4.1.2' ve '5.1.1' belirtilen eklemeler herhangi bulamıyorum' N3936' yüzden C++ 14 için hayır. –

cevap

5

biz (bu N3938 kaplıdır ) N3937 C++ 14 DIS oldukça yakın N3936 standart son taslakta bakarsak. 4.1.2 ve N3889'un 5.1.1 bölümlerinde belirtilen dillerin hiçbirini içermez. Cevap Bjarne Stroustrup says concepts lite will be a technical report hayır, ama gibi

Yani C++ 14 için görünüyor. Ancak

Ötesi C++ 14, komite bu arada oluyor hiçbir şey gelmez Bu da yaklaşık 2017 yılında başka C++ Standard üreten tasarlar.Örneğin Sen diyor ISO cpp's Current Status page ilgili teknik raporları hakkında daha fazla bulabilirsiniz Şu anda 2012 yılında başlayan 2014 ve 2015 yılında yayınlanacak yolda birkaç tanesi devam sekiz (8) ayrı Teknik Özellikler, çünkü, komite bir “ayrıştırma” modeline geçişi yapılmış nerede çalışmaların başlıca parçaları , Standardın kendisinden bağımsız olarak ilerleyebilir ve ayrı TS'ler olarak olarak teslim edilebilir. Satıcılar bu uygulamayı tercih edebilir ve topluluk her özelliğinin std :: deneysel sürümü ile tecrübe kazanabilir. Bunu sanmıyorum iken resmen% 100 resmiyet kazanacak gerçek C++ Standart

İlgili konular