«c++17» etiketlenmiş sorular

C ++ 17, 2017'de onaylanan C ++ standardının adıdır. Önceki C ++ 14 standardını temel alır, çekirdek dili ve standart kütüphaneyi geliştirir ve birkaç yeni dil özelliği ekler.

6
deneysel :: dosya sistemi bağlayıcı hatası
Yeni c ++ 1z özelliklerini gcc 6.0'da geliştirme aşamasında kullanmaya çalışıyorum. Bu küçük örneği denersem: #include <iostream> #include <experimental/filesystem> namespace fs = std::experimental::filesystem; int main() { fs::path p1 = "/home/pete/checkit"; std::cout << "p1 = " << p1 << std::endl; } Bende var: / opt / linux-gnu_6-20151011 / bin / g …
100 c++  gcc  c++17 


6
C ++ 17'de neden std :: make_unique kullanılıyor?
Anladığım kadarıyla, C ++ 14 tanıtıldı std::make_uniqueçünkü parametre değerlendirme sırasının belirtilmemesi nedeniyle bu güvenli değildi: f(std::unique_ptr<MyClass>(new MyClass(param)), g()); // Syntax A (Açıklama: Eğer değerlendirme önce hafızayı ham işaretçi için ayırırsa, sonra çağırır g()ve yapımdan önce bir istisna atılırsa std::unique_ptr, hafıza sızdırılır.) Arama std::make_unique, arama sırasını kısıtlamanın bir yoluydu ve böylece …
98 c++  c++17  unique-ptr 



1
Garantili kopya seçimi nasıl çalışır?
2016 Oulu ISO C ++ Standartları toplantısında, basitleştirilmiş değer kategorileri aracılığıyla Garantili kopya seçimi adlı bir teklif , standartlar komitesi tarafından C ++ 17'ye oylandı. Garantili kopya seçimi tam olarak nasıl çalışır? Kopya seçimine zaten izin verilen bazı durumları kapsıyor mu, yoksa kopya seçimini garanti etmek için kod değişiklikleri gerekli …

1
Şablon kesinti kılavuzları nelerdir ve bunları ne zaman kullanmalıyız?
C ++ 17 standardı "şablon kesinti kılavuzlarını" sunar. Standardın bu sürümünde tanıtılan kurucular için yeni şablon argüman çıkarımı ile ilgili olduklarını anlıyorum, ancak henüz ne oldukları ve ne için oldukları konusunda basit, SSS tarzı bir açıklama görmedim. C ++ 17'de şablon kesinti kılavuzları nelerdir? Neden (ve ne zaman) onlara ihtiyacımız …

4
Modern C ++ 'ın deneysel özellikleri uzun vadeli projeler için güvenilir midir?
Şu anda C ++ 11/14 kullanan bir projem var, ancak std::filesystemsadece C ++ 17'de mevcut olan gibi bir şey gerektiriyor ve bu nedenle şu anda onu kullanma şansım yok. Bununla birlikte, mevcut derleyicimde olarak mevcut olduğunu görüyorum std::experimental::filesystem. Gelecekte aşağıdakilere benzer bir şey ekleyebileceğimi varsayarak deneysel özellikleri kullanmak iyi bir …

2
std :: yapılandırılmış bağlamalarla yoksayılsın mı?
Başlangıç: std::tuple<int, int, int> f(); std::tuple<int, int, float, int> g(); C ++ 1z, yapılandırılmış bağlamalar için sözdizimi sunacak ve bunun yerine yazmayı mümkün kılacaktır. int a, b, c; std::tie(a, b, c) = f(); gibi bir şey auto [a, b, c] = f(); Bununla birlikte, belirli bileşenlerin yok sayılmasına std::tieda izin …

1
[[Fallthrough]] kullandığım halde GCC neden beni bir düşüş hakkında uyarıyor?
Aşağıdaki kod parçasında, [[fallthrough]]bir düşüşün istendiğini belgelemek için C ++ 1z'den standart niteliği kullanıyorum : #include <iostream> int main() { switch (0) { case 0: std::cout << "a\n"; [[fallthrough]] case 1: std::cout << "b\n"; break; } } GCC 7.1 ile kod hatasız derlenir. Bununla birlikte, derleyici hala bir sonuç hakkında …

5
Lambda'nın kendisinde bir C ++ lambda fonksiyonunun adresi nasıl alınır?
Kendi içinde bir lambda fonksiyonunun adresini nasıl alacağımı anlamaya çalışıyorum. İşte bir örnek kod: []() { std::cout << "Address of this lambda function is => " << ???? }(); Lambda'yı değişken olarak yakalayabildiğimi ve adresi yazdırabileceğimi biliyorum, ancak bu anonim işlev yürütülürken yerinde yapmak istiyorum. Bunu yapmanın daha basit bir …
53 c++  c++11  lambda  c++14  c++17 

2
Remove_reference işlevler üzerinde neden çalışmıyor?
Geçen gün bazı metaprogramlama yaparken garip bir şeyle karşılaştım. Temelde bu iddiayı aşağıya (beklediğim gibi) geçmiyor. static_assert(std::is_same_v<void(), std::remove_reference_t<void()&>>); İlk başta bir işlev referansı tanımlayan sözdizimsel bir hata yaptığımı sanıyordum, ancak bu iddia geçerliliğini koruyor. static_assert(std::is_same_v<void()&, void()&>); Ayrıca remove_referencecppreference kaynak kopyalamak kendimi uygulamayı denedim ama bu da işe yaramadı. Burada neler …
38 c++  templates  types  c++17 




Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.