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
Fungsi mengembalikan ekspresi lambda
Saya ingin tahu apakah mungkin untuk menulis fungsi yang mengembalikan fungsi lambda di C ++ 11. Tentu satu masalah adalah bagaimana mendeklarasikan fungsi tersebut. Setiap lambda memiliki tipe, tetapi tipe itu tidak dapat diekspresikan dalam C ++. Saya tidak berpikir ini akan berhasil: auto retFun() -> decltype ([](int x) -> …
90 c++  function  c++11  lambda 


5
Apakah ada padanan non-atomik dari std :: shared_ptr? Dan mengapa tidak ada di <memory>?
Ini sedikit dari dua pertanyaan bagian, semua tentang atomisitas std::shared_ptr: 1. Sejauh yang saya tahu, std::shared_ptradalah satu-satunya penunjuk cerdas dalam &lt;memory&gt;atom itu. Saya bertanya-tanya apakah ada versi non-atomik yang std::shared_ptrtersedia (saya tidak dapat melihat apa pun di dalamnya &lt;memory&gt;, jadi saya juga terbuka untuk saran di luar standar, seperti yang …

4
Bagaimana cara kerja Perpustakaan Impor? Detailnya?
Saya tahu ini mungkin tampak cukup mendasar bagi para geek. Tapi saya ingin membuatnya sangat jelas. Ketika saya ingin menggunakan Win32 DLL, biasanya saya hanya memanggil API seperti LoadLibrary () dan GetProcAdderss (). Tetapi baru-baru ini, saya mengembangkan dengan DirectX9, dan saya perlu menambahkan file d3d9.lib , d3dx9.lib , dll. …
90 c++  c  windows  visual-c++ 

8
Membuat namespace C ++ di header dan source (cpp)
Apakah ada perbedaan antara membungkus konten file header dan cpp dalam namespace atau hanya membungkus konten header dan kemudian melakukan penggunaan namespace di file cpp? Yang saya maksud dengan perbedaan adalah hukuman kinerja apa pun atau semantik yang sedikit berbeda yang dapat menyebabkan masalah atau apa pun yang perlu saya …
90 c++  namespaces 



6
Ada alasan untuk tidak menggunakan lambda global?
Kami memiliki fungsi yang menggunakan lambda internal yang tidak menangkap sendiri, misalnya: void foo() { auto bar = [](int a, int b){ return a + b; } // code using bar(x,y) a bunch of times } Sekarang fungsi yang diimplementasikan oleh lambda menjadi dibutuhkan di tempat lain, jadi saya akan …
89 c++  lambda 

2
Apa tujuan menggunakan serikat dengan hanya satu anggota?
Ketika saya membaca kode sumber seastar , saya perhatikan bahwa ada struktur gabungan tx_sideyang hanya memiliki satu anggota. Apakah ini beberapa hack untuk menangani masalah tertentu? FYI, saya tempel tx_sidestruktur di bawah ini: union tx_side { tx_side() {} ~tx_side() {} void init() { new (&amp;a) aa; } struct aa { …
89 c++  c++14  unions 

5
Mengapa lambda memiliki ukuran 1 byte?
Saya bekerja dengan memori beberapa lambda di C ++, tapi saya agak bingung dengan ukurannya. Ini kode tes saya: #include &lt;iostream&gt; #include &lt;string&gt; int main() { auto f = [](){ return 17; }; std::cout &lt;&lt; f() &lt;&lt; std::endl; std::cout &lt;&lt; &amp;f &lt;&lt; std::endl; std::cout &lt;&lt; sizeof(f) &lt;&lt; std::endl; } Anda …
89 c++  c++11  lambda  c++14  sizeof 


5
Apa yang akan 'std :;' lakukan di c ++?
Saya baru saja memodifikasi beberapa kode, dan menemukan bug yang sudah ada sebelumnya pada satu baris dalam suatu fungsi: std:;string x = y; Kode ini masih dikompilasi dan berfungsi seperti yang diharapkan. Definisi string berfungsi karena file ini using namespace std; , jadi sejak std::awal tidak diperlukan. Pertanyaannya adalah, mengapa …
89 c++  std  colon 

2
Mengapa karakter 'A' dibandingkan dengan 0x41?
Saya melihat beberapa kode C ++ dan menemukan konstruksi berikut: if('A' == 0x41) { // ... } else if('A' == 0xc1) { // ... } else { // ... } Saya mendapatkan peringatan Visual Studio yang mengatakan: Peringatan Ekspresi bersyarat C4127 adalah konstan. Visual Studio jelas benar - pasti 'A' …
89 c++  string 

4
Mengapa tidak ada move-assignment / move-constructor?
Saya seorang programmer sederhana. Variabel anggota kelas saya paling sering terdiri dari tipe POD dan kontainer STL. Karena itu saya jarang harus menulis operator penugasan atau menyalin konstruktor, karena ini diterapkan secara default. Tambahkan ke ini, jika saya menggunakan std::movepada objek yang tidak dapat dipindahkan, ini menggunakan operator penugasan, artinya …

4
Mengapa memmove lebih cepat daripada memcpy?
Saya menyelidiki hotspot kinerja dalam sebuah aplikasi yang menghabiskan 50% waktunya di memmove (3). Aplikasi ini memasukkan jutaan integer 4-byte ke dalam array yang diurutkan, dan menggunakan memmove untuk menggeser data "ke kanan" untuk memberi ruang bagi nilai yang disisipkan. Harapan saya adalah menyalin memori sangat cepat, dan saya terkejut …
89 c++  c  performance  memory 

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.