«c++20» etiketlenmiş sorular

C ++ 20, C ++ 17'den sonra C ++ sürümü için hedeftir. Bu etiket C ++ 20 için yolda C ++ özellikleri hakkında sorular için (C ++ etiketi ile birlikte) kullanılmalıdır.



3
C ++ 'da <=> operatörü nedir?
C ++ operatörleri hakkında bilgi edinmeye çalışırken , cppreference.com , * ' da garip bir karşılaştırma operatörü üzerine tökezledi : "Peki, eğer bunlar C ++ 'da ortak operatörler ise, onları öğrensen iyi olur" diye düşündüm. Fakat bu gizemi açıklamaya yönelik tüm girişimlerim başarısız oldu. Burada bile Stack Overflow'da aramamda hiç …

5
Neden talep gerektirir?
C ++ 20 kavramlarının köşelerinden biri, yazmanız gereken belirli durumlar olmasıdır requires requires. Örneğin, [expr.prim.req] / 3'teki bu örnek : Bir requir-ifadesi , below-template argümanlarına ad hoc kısıtlamaları yazmanın bir yolu olarak bir needs -cümlesi ([temp]) de kullanılabilir: template&lt;typename T&gt; requires requires (T x) { x + x; } T …
161 c++  c++-concepts  c++20 



3
C ++ 20'deki eşgörünümler nelerdir?
İçinde koroutinler nelerdir c ++ 20? "Parallelism2" ve / ve "Concurrency2" den hangi yönlerden farklıdır (aşağıdaki resme bakın)? Aşağıdaki resim ISOCPP'den alınmıştır. https://isocpp.org/files/img/wg21-timeline-2017-03.png
104 c++  coroutine  c++20 

2
Std :: ssize () neden C ++ 20'de tanıtıldı?
C ++ 20std::ssize() , aşağıdaki gibi ücretsiz işlevi tanıttı : template &lt;class C&gt; constexpr auto ssize(const C&amp; c) -&gt; std::common_type_t&lt;std::ptrdiff_t, std::make_signed_t&lt;decltype(c.size())&gt;&gt;; Cl ass C üye fonksiyonunun static_castdönüş değerini dönüştürmek için olası bir uygulama kullanıyor gibi görünüyorsize() imzalı karşılığına . Yana size()C üyesi fonksiyonu daima negatif olmayan değerleri döndürür, neden kimse …
99 c++  stl  unsigned  signed  c++20 


2
C ++ 20'ye kadar tanımsız davranış için malloc kullanıyor
Aşağıdaki kodun C ++ 20'ye kadar tanımsız davranışa sahip olduğu söylendi: int *p = (int*)malloc(sizeof(int)); *p = 10; Bu doğru mu? Argüman, intdeğer atanmadan önce nesnenin yaşam süresinin başlamamasıydı ( P0593R6 ). Sorunu çözmek için yerleşim newkullanılmalıdır: int *p = (int*)malloc(sizeof(int)); new (p) int; *p = 10; Nesnenin yaşam süresini …


2
Birçok standart kitaplık türü için neden C ++ 20'de operatör! = Kaldırıldı?
Cppreference göre , std::type_info::operator!=C ++ 20 ile kaldırılır, ancak std::type_info::operator==görünüşe göre kalır. Arkasındaki sebep nedir? Eşitsizliğin anlamsız olduğunu karşılaştırmayı kabul edebilirim, ama sonra eşitliği karşılaştırmak da anlamsız olurdu, değil mi? Benzer bir şekilde, operator!=bu gibi kaplar da dahil olmak üzere diğer pek çok standart kütüphane türlerinin std::unordered_map::operator!=ve std::unordered_set::operator!=cppreference göre 20 …


2
C ++ 20'de belirtilen başlatıcılar
Başlatıcılar olarak belirlenmiş c ++ 20 özelliğinden biriyle ilgili bir sorum var (bu özellik hakkında daha fazla bilgi burada ) #include &lt;iostream&gt; constexpr unsigned DEFAULT_SALARY {10000}; struct Person { std::string name{}; std::string surname{}; unsigned age{}; }; struct Employee : Person { unsigned salary{DEFAULT_SALARY}; }; int main() { std::cout &lt;&lt; std::boolalpha …

3
müstehcen (bool)
C ++ 20, bir kurucunun açık yapılıp yapılmadığını koşullu olarak derleme zamanında seçen açık (bool) tanıtır . Aşağıda burada bulduğum bir örnek var . struct foo { // Specify non-integral types (strings, floats, etc.) require explicit construction. template &lt;typename T&gt; explicit(!std::is_integral_v&lt;T&gt;) foo(T) {} }; foo a = 123; // OK …
24 c++  c++20  explicit 

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.