Pertanyaan yang diberi tag «c++20»

C ++ 20 adalah target untuk versi C ++ setelah C ++ 17. Tag ini harus digunakan (bersama dengan tag C ++) untuk pertanyaan tentang fitur C ++ di jalur untuk C ++ 20.



3
Apa yang dimaksud dengan operator <=> di C ++?
Ketika saya mencoba mempelajari tentang operator C ++ , saya menemukan sebuah operator perbandingan aneh di cppreference.com , * dalam tabel yang terlihat seperti ini: "Yah, jika ini adalah operator umum di C ++, saya lebih baik mempelajarinya", pikir saya. Tetapi semua upaya saya untuk menjelaskan misteri ini tidak berhasil. …

5
Mengapa kita membutuhkan membutuhkan?
Salah satu sudut konsep C ++ 20 adalah bahwa ada situasi tertentu di mana Anda harus menulis requires requires. Misalnya, contoh ini dari [expr.prim.req] / 3 : Sebuah membutuhkan ekspresi juga dapat digunakan dalam membutuhkan-klausul ([suhu]) sebagai cara menulis iklan kendala hoc pada argumen template yang seperti di bawah ini: …
161 c++  c++-concepts  c++20 


3
Apa coroutine di C ++ 20?
Apa itu coroutine c ++ 20? Dalam hal apa ini berbeda dari "Parallelism2" atau / dan "Concurrency2" (lihat gambar di bawah)? Gambar di bawah ini dari ISOCPP. https://isocpp.org/files/img/wg21-timeline-2017-03.png
104 c++  coroutine  c++20 

2
Mengapa std :: ssize () diperkenalkan di C ++ 20?
C ++ 20 memperkenalkan std::ssize()fungsi gratis seperti di bawah ini: 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;; Sebuah implementasi yang mungkin tampaknya menggunakan static_cast, untuk mengubah nilai kembali dari size()fungsi anggota cl ass C menjadi mitra yang ditandatangani. Karena size()fungsi anggota C selalu mengembalikan nilai non-negatif, …
99 c++  stl  unsigned  signed  c++20 



3
Operator kesetaraan tidak dapat didefinisikan untuk implementasi operator pesawat ruang angkasa khusus di C ++ 20
Saya mengalami perilaku aneh dengan operator pesawat ruang angkasa baru &lt;=&gt;di C ++ 20. Saya menggunakan kompiler Visual Studio 2019 dengan /std:c++latest. Kode ini dikompilasi dengan baik, seperti yang diharapkan: #include &lt;compare&gt; struct X { int Dummy = 0; auto operator&lt;=&gt;(const X&amp;) const = default; // Default implementation }; int …

2
Mengapa operator! = Dihapus dalam C ++ 20 untuk banyak tipe perpustakaan standar?
Menurut cppreference , std::type_info::operator!=dihapus dengan C ++ 20, bagaimanapun, std::type_info::operator==tampaknya tetap. Apa alasan di baliknya? Saya mungkin setuju untuk membandingkan ketidaksetaraan menjadi tidak berarti, tetapi kemudian membandingkan kesetaraan akan sama tidak berartinya, bukan? Demikian pula, operator!=dari banyak jenis perpustakaan standar lainnya, termasuk wadah seperti std::unordered_map::operator!=dan std::unordered_set::operator!=akan dihapus dalam C ++ …


2
Inisialisasi yang ditunjuk dalam C ++ 20
Saya punya pertanyaan tentang salah satu fitur c ++ 20, inisialisasi yang ditunjuk (info lebih lanjut tentang fitur ini di sini ) #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 …

3
apa usecase untuk eksplisit (bool)
C ++ 20 diperkenalkan secara eksplisit (bool) yang dipilih secara kondisional pada waktu kompilasi apakah konstruktor dibuat eksplisit atau tidak. Di bawah ini adalah contoh yang saya temukan di sini . 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) {} …
24 c++  c++20  explicit 

2
makna inline dalam antarmuka modul
Pertimbangkan file tajuk: class T { private: int const ID; public: explicit T(int const ID_) noexcept : ID(ID_) {} int GetID() const noexcept { return ID; } }; atau, sebagai alternatif: class T { private: int const ID; public: explicit T(int const ID_) noexcept; int GetID() const noexcept; }; inline …

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.