Pertanyaan yang diberi tag «c++»

C ++ adalah bahasa pemrograman untuk tujuan umum. Awalnya dirancang sebagai ekstensi ke C dan memiliki sintaksis yang sama, tetapi sekarang bahasa yang sama sekali berbeda. Gunakan tag ini untuk pertanyaan tentang kode yang akan dikompilasi dengan kompiler C ++. Gunakan tag khusus versi untuk pertanyaan yang berkaitan dengan revisi standar spesifik [C ++ 11], [C ++ 14], [C ++ 17] atau [C ++ 20], dll.

2
Apakah penyimpanan std :: chrono :: tahun benar-benar setidaknya 17 bit?
Dari cppreference std::chrono::years (since C++20) duration</*signed integer type of at least 17 bits*/, std::ratio<31556952>> Menggunakan libc++, tampaknya penyimpanan garis bawah std::chrono::yearsadalah shortyang ditandatangani 16 bit . std::chrono::years( 30797 ) // yields 32767/01/01 std::chrono::years( 30797 ) + 365d // yields -32768/01/01 apparently UB Apakah ada kesalahan ketik pada cppreference atau yang …
14 c++  chrono  c++20  libc++ 


3
Mengurutkan vektor dalam urutan menurun dalam dua rentang
Katakanlah saya memiliki vektor bilangan bulat: std::vector<int> indices; for (int i=0; i<15; i++) indices.push_back(i); Lalu saya mengurutkannya dalam urutan menurun: sort(indices.begin(), indices.end(), [](int first, int second) -> bool{return indices[first] > indices[second];}) for (int i=0; i<15; i++) printf("%i\n", indices[i]); Ini menghasilkan yang berikut: 14 13 12 11 10 9 8 7 …

1
Dentang tidak mengkompilasi kode tetapi gcc dan msvc mengkompilasinya
Saya tidak mengerti apa masalahnya: baik dalam kode saya atau di kompiler (kurang mungkin). Ada sepotong kode seperti ini: #include <iostream> #include <type_traits> #include <set> template<typename T, typename = void> struct TestA: std::false_type {}; template<typename T> struct TestA<T, std::void_t<typename T::reverse_iterator>> : std::true_type {}; template<typename T> struct TestA<T, std::void_t<typename T::dummy_iterator>> : …



1
Bisakah saya daftar-menginisialisasi std :: vektor dengan penerusan yang sempurna dari elemen?
Saya perhatikan bahwa daftar agregasi inisialisasi std :: vector melakukan inisialisasi salin ketika bergerak lebih berlaku. Pada saat yang sama, banyak emplace_backs melakukan apa yang saya inginkan. Saya hanya bisa menghasilkan solusi yang tidak sempurna untuk menulis fungsi templat ini init_emplace_vector. Ini hanya optimal untuk konstruktor nilai tunggal yang tidak …

1
Mengapa optimasi basis kosong dilarang ketika kelas dasar kosong juga merupakan variabel anggota?
Optimasi basis kosong sangat bagus. Namun, ia datang dengan batasan berikut: Optimalisasi basis kosong dilarang jika salah satu kelas basis kosong juga merupakan tipe atau basis tipe anggota data non-statis pertama, karena dua sub-objek dasar dari tipe yang sama diharuskan memiliki alamat yang berbeda dalam representasi objek dari tipe yang …



2
Bagaimana cara melempar dan menangkap barang?
Dengan kode ini: int main() { try { throw -1; } catch (int& x) { std::cerr << "We caught an int exception with value: " << x << std::endl; } std::cout << "Continuing on our merry way." << std::endl; return 0; } Kita punya: /tmp$ ./prorgam.out Continuing on our merry …

1
jika constexpr - mengapa pernyataan dibuang sepenuhnya diperiksa?
Saya bermain-main dengan c ++ 20 consteval di GCC 10 dan menulis kode ini #include <optional> #include <tuple> #include <iostream> template <std::size_t N, typename Predicate, typename Tuple> consteval std::optional<std::size_t> find_if_impl(Predicate&& pred, Tuple&& t) noexcept { constexpr std::size_t I = std::tuple_size_v<std::decay_t<decltype(t)>> - N; if constexpr (N == 0u) { return std::nullopt; …

1
Apakah ini bug di std :: gcd?
Saya menemukan perilaku std::gcdyang tidak terduga ini: #include <iostream> #include <numeric> int main() { int a = -120; unsigned b = 10; //both a and b are representable in type C using C = std::common_type<decltype(a), decltype(b)>::type; C ca = std::abs(a); C cb = b; std::cout << a << ' ' …

2
Mengapa kita tidak dapat membuat objek yang dapat dibangun dengan menggunakan malloc jika konstruktor standar sepele tidak melakukan tindakan?
Saya mengalami kesulitan dalam memahami paragraf berikut yang dikutip dari cppreference tentang konstruktor standar sepele. Saya telah mencari stackoverflow tetapi masih belum mendapatkan jawaban yang jelas. Jadi tolong bantu. Konstruktor default sepele adalah konstruktor yang tidak melakukan tindakan. Semua tipe data yang kompatibel dengan bahasa C (tipe POD) sepele-standar dibangun. …


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.