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.

6
Menginisialisasi variabel tipe tidak dikenal melalui konstruktor kelebihan beban di C ++
berasal dari latar belakang terutama python Saya agak kesulitan bekerja dengan tipe C ++. Saya mencoba menginisialisasi variabel kelas melalui salah satu dari beberapa konstruktor kelebihan beban yang menggunakan berbagai jenis sebagai parameter. Saya telah membaca bahwa menggunakan autokata kunci dapat digunakan untuk deklarasi otomatis suatu variabel, namun dalam kasus …

3
Apakah deleter shared_ptr disimpan di memori dialokasikan oleh pengalokasi khusus?
Katakanlah saya punya shared_ptrdengan pengalokasi khusus dan deleter khusus. Saya tidak dapat menemukan apa pun dalam standar yang berbicara tentang di mana deleter harus disimpan: ia tidak mengatakan bahwa pengalokasi kustom akan digunakan untuk memori deleter, dan tidak mengatakan bahwa itu tidak akan terjadi. Apakah ini tidak ditentukan atau saya …


2
Properti pointer ke array panjang nol
Mempertimbangkan int main() { auto a = new int[0]; delete[] a; // So there's no memory leak } Di antara inisialisasi dan penghapusan salinan, apakah Anda diizinkan membaca pointer di a + 1? Selanjutnya, apakah bahasa mengizinkan compiler untuk set ake nullptr?


4
Konversi tersirat tidak diizinkan untuk dikembalikan
#include <optional> bool f() { std::optional<int> opt; return opt; } Tidak mengkompilasi: 'return': cannot convert from 'std::optional<int>' to 'bool' Referensi konsultasi Saya akan berpikir untuk menemukan penjelasan, tetapi saya membacanya sebagaimana mestinya ok. Konversi tersirat dilakukan setiap kali ekspresi dari beberapa tipe T1 digunakan dalam konteks yang tidak menerima tipe …


5
Atur operasi dalam c ++ (perbarui nilai yang ada)
Ini kode saya: while (it!=s.end()) //here 's' is a set of stl and 'it' is iterator of set { *it=*it-sub; //'sub' is an int value it++; } Saya tidak dapat memperbarui nilai yang ditetapkan oleh iterator. Saya ingin mengurangi nilai integer 'sub' dari semua elemen set. Adakah yang bisa membantu …
21 c++ 

1
Mengapa inisialisasi agregat GCC dari array mengisi semuanya dengan nol terlebih dahulu, termasuk elemen yang tidak nol?
Mengapa gcc mengisi seluruh array dengan nol alih-alih hanya 96 bilangan bulat yang tersisa? Inisialisasi non-nol semua pada awal array. void *sink; void bar() { int a[100]{1,2,3,4}; sink = a; // a escapes the function asm("":::"memory"); // and compiler memory barrier // forces the compiler to materialize a[] in memory …


1
Apakah menelurkan utas memberikan jaminan pesanan memori sendiri?
Saya ingin melakukan kira-kira ini: Utas awal: tulis beberapa nilai ke global vars (mereka tidak akan pernah ditulis lagi) Ini bisa berupa data yang cukup besar (array, string, dll). Tidak bisa dibuat begitu saja std::atomic<>. menelurkan utas lainnya Utas lainnya: baca keadaan global lakukan pekerjaan, dll. Sekarang, saya tahu saya …

1
Mengapa {} sebagai argumen fungsi tidak mengarah pada ambiguitas?
Pertimbangkan kode ini: #include <vector> #include <iostream> enum class A { X, Y }; struct Test { Test(const std::vector<double>&, const std::vector<int>& = {}, A = A::X) { std::cout << "vector overload" << std::endl; } Test(const std::vector<double>&, int, A = A::X) { std::cout << "int overload" << std::endl; } }; int …

3
Split tipe std :: varian yang diberikan oleh kriteria yang diberikan
Bagaimana dengan jenis varian yang diberikan using V = std::variant<bool, char, std::string, int, float, double, std::vector<int>>; mendeklarasikan dua tipe varian using V1 = std::variant<bool, char, int, float, double>; using V2 = std::variant<std::string, std::vector<int>>; dari mana V1menyertakan semua jenis aritmatika dari Vdan V2termasuk semua jenis non-aritmatika dari V? V bisa menjadi …
20 c++  c++17  std-variant 


4
Apakah valid menggunakan std :: transform with std :: back_inserter?
Cppreference memiliki kode contoh ini untuk std::transform: std::vector<std::size_t> ordinals; std::transform(s.begin(), s.end(), std::back_inserter(ordinals), [](unsigned char c) -> std::size_t { return c; }); Tetapi juga dikatakan: std::transformtidak menjamin aplikasi unary_opatau binary_op. Untuk menerapkan fungsi ke urutan secara berurutan atau menerapkan fungsi yang memodifikasi elemen urutan, gunakan std::for_each. Ini mungkin untuk memungkinkan implementasi …

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.