2013-06-10 16 views
9

Sormamın nedeni, web üzerinde birbiriyle çelişen bilgi parçaları olmasıdır. Bir yandan, isocpp.org numaralı telefondan, GCC 4.8.1'in tamamen uygulanan C++ 11 standardına sahip olduğunu belirtmektedir. Diğer taraftan, GCC C++11 support page, "Çöp toplama ve erişilebilirlik temelli sızıntı tespiti için en az destek" olmadığını belirtir. Yani GCC 4.8.1 gerçekten C++ 11 özelliği tamamlandı mı?gcc 4.8.1'in çöp toplama için C++ 11 desteği var mı?

+2

Çöp toplama isteğe bağlı değil mi? –

+4

Gcc 4.8, ana dil seviyesinde C++ 11 ile tamamen uyumludur; bu, kütüphane uygulamasının C++ 11 ile tamamen uyumlu olduğu anlamına gelmez. –

+5

@Mechanicalsnail: GC isteğe bağlıdır, GC için minimum destek yoktur ve gcc'de bulunmaz. 4.8 –

cevap

12

Çöp toplama desteği standart olarak isteğe bağlıdır (bkz. Bjarne Stroustrup C++11 FAQ). Bu nedenle, GCC 4.8.1 standardın tüm zorunlu çekirdek kısımlarını uyguladığı için eksiksiz bir özelliktir.

Yorumlar benim cevabımın net olmadığını kanıtladı, daha spesifik olacağım: Sadece çöp toplama temel desteğinden bahsediyordum. Kütüphane kısmı zorunludur. GCC 4.8.1 ile birlikte gelen libstdC++ sürümü tam olarak C++ 11 uyumlu değil (<regex> şu anda çalışmıyor) ve çöp toplama için ABI eksik özelliklerin bir parçasıdır.

+1

+1, bkz. [N2670 Önerisi] (http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2670.htm): * Çöp toplama ve uygulamalarını desteklemeyen bir uygulama no-ops olarak tanımlanan tüm kütüphane çağrıları uygundur. * – syam

+5

Bir GC'nin sağlanması isteğe bağlıdır, bir GC için * destek * sağlamaz. Gcc C++ 11 durumundaki giriş, bir GC için * destek * anlamına gelir ve uygulanmaz. Yani, Syam'ın yukarıdaki yorumu kullanarak: GC yapmak isteğe bağlıdır (aramalar no-op olabilir), ancak arayüz mevcut olmalıdır (bu isteğe bağlı değildir). –