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.

1
Bagaimana std :: lock_guard lebih cepat dari std :: mutex :: lock ()?
Saya berdebat dengan seorang kolega, tentang lock_guard, dan dia mengusulkan bahwa lock_guard mungkin lebih lambat daripada mutex :: lock () / mutex :: unlock () karena biaya instantiate dan unistantiate class lock_guard. Lalu saya membuat tes sederhana ini dan, anehnya, versi dengan lock_guard hampir dua kali lebih cepat daripada versi …
9 c++  mutex 

2
Bisakah saya menggunakan pengalokasi khusus untuk std :: array untuk kunci kriptografi yang aman?
Saya tahu std::arraybenar-benar dialokasikan dalam tumpukan, tetapi pertanyaan ini dimotivasi oleh masalah keamanan yang memerlukan dua hal: Data di std::arrayakan zerod atau acak pada kehancuran Data di std::arrayakan dikunci , sehingga tidak pernah masuk ke disk baik pada crash atau pada memori swap Biasanya, dengan std::vector, solusinya adalah membuat pengalokasi …

4
Dari bahasa alami hingga ekspresi C ++
Tugas: Terjemahkan ekspresi bahasa alami berikut ke ekspresi C ++. Asumsikan bahwa semua variabel adalah angka non-negatif atau boolean (bernilai benar atau salah). Bahasa alami: Baik a dan b keduanya salah atau c benar, tetapi tidak keduanya. Solusi saya: (a==0 && b==0)xor(c==1) Solusi profesor: (!a && !b) != c Pertanyaan: …
9 c++  logic 

1
Apa artinya "sangat terjadi sebelum"?
Ungkapan "sangat terjadi sebelum" digunakan beberapa kali dalam standar konsep C ++. Misalnya: Pengakhiran [basic.start.term] / 5 Jika penyelesaian inisialisasi objek dengan durasi penyimpanan statis sangat terjadi sebelum panggilan ke std :: atexit (lihat, [support.start.term]), panggilan ke fungsi diteruskan ke std :: atexit diurutkan sebelum panggilan ke destruktor untuk objek. …

1
Apakah konkurensi aman untuk memanggil konkurensi :: concurrent_vector :: push_back sambil mengulangi concurrent_vector di utas lain?
push_back , begin , end digambarkan aman bersamaan di https://docs.microsoft.com/en-us/cpp/parallel/concrt/reference/concurrent-vector-class?view=vs-2019#push_back Namun kode di bawah ini menyatakan. Mungkin karena elemen ditambahkan tetapi belum diinisialisasi. struct MyData { explicit MyData() { memset(arr, 0xA5, sizeof arr); } std::uint8_t arr[1024]; }; struct MyVec { concurrency::concurrent_vector<MyData> v; }; auto vector_pushback(MyVec &vec) -> void { vec.v.push_back(MyData{}); …

3
foo (batal) vs foo (batal *)
Secara fungsional dan sintaksis, apakah ada perbedaan antara fungsi yang prototipe-nya int foo(void)dan int foo(void *)? Saya tahu perbedaan antara, misalnya, int bar(int)dan int bar(int *)- salah satunya mencari int, dan yang lainnya mencari pointer int. Apakah voidberperilaku dengan cara yang sama?


1
Cara memanggil metode mesin flutter dari utas lainnya
Saya menggunakan flutter desktop untuk linux. Saya memanggil metode yang disebut MarkTextureFrameAvailableyang seharusnya menandai tekstur yang akan dirender ulang oleh mesin. Karena saya memprogram pemutar video, saya perlu menelepon MarkTextureFrameAvailabledari utas pemain. Masalahnya adalah bahwa mesin memaksa saya untuk memanggil MarkTextureFrameAvailable(dan metode mesin lainnya) dari utas yang menciptakan mesin. Anda …

1
Apakah implementasi C ++ AtomicInt ini benar?
Premis: Saya bekerja dengan lingkungan embedded ARM (hampir bare-metal) di mana saya bahkan tidak memiliki C ++ 11 (with std::atomic<int>) tersedia, jadi harap hindari jawaban seperti " cukup gunakan standar C ++std::atomic<int> ": Saya tidak bisa . Apakah implementasi ARM dari AtomicInt ini benar? (anggap arsitektur ARM adalah ARMv7-A ) …

3
list :: empty () perilaku multi-utas?
Saya punya daftar yang saya ingin utas berbeda untuk mengambil elemen. Untuk menghindari mengunci mutex yang menjaga daftar ketika kosong, saya periksa empty()sebelum mengunci. Tidak apa-apa jika panggilan list::empty()tidak 100% benar. Saya hanya ingin menghindari menabrak atau mengganggu panggilan list::push()dan list::pop()panggilan bersamaan . Apakah saya aman untuk mengasumsikan VC ++ …

3
C ++ Pembuatan Kode Lambda dengan Capture Init di C ++ 14
Saya mencoba untuk memahami / mengklarifikasi kode kode yang dihasilkan ketika tangkapan dilewatkan ke lambdas terutama di tangkapan init umum yang ditambahkan dalam C ++ 14. Berikan contoh kode berikut yang tercantum di bawah ini adalah pemahaman saya saat ini tentang apa yang akan dihasilkan oleh kompiler. Kasus 1: ditangkap …
9 c++  lambda  c++14  move 
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.