Pertanyaan yang diberi tag c++

16
Apakah std :: mengatur objek toko berdekatan di memori?

Apakah std::setmenyimpan objek dalam memori yang berdekatan suka std::vector? Saya belum dapat menemukan ini di web, cppreference tidak menyebutkan rincian alokasi memori. Tapi saya tidak bisa melihat mengapa itu tidak bisa menggunakan memori yang berdekatan, maka pertanyaan

16
std :: pair <auto, auto> ketik kembali

Aku sedang bermain-main dengan autodi std::pair. Dalam kode di bawah ini, fungsi fseharusnya mengembalikan std::pairtipe yang bergantung pada parameter templat. Contoh kerja: CONTOH 1 template <unsigned S> auto f() { if constexpr (S == 1) return std::pair{1, 2}; // pair of ints else if...

16
Template Kelebihan Ambigu

Saya memiliki kode templated berikut #include <vector> #include <array> #include <iostream> template<typename T1> void foo(std::vector<T1> bar) { std::cout << "GENERIC" << std::endl; } template<typename T1> void

16
Cara menyampaikan referensi ke argumen nama ketik templat

Apakah ada cara untuk melewatkan referensi sebagai argumen ke argumen tipe nama template? Maksud saya, alih-alih meneruskan int, misalnya, untuk meneruskan referensi ke int. template <typename T> struct Foo { Foo(T arg) : ptr(arg) {} T ptr; }; int main() { int* a = new int(6);...

15
Bagaimana kompiler c ++ menemukan variabel eksternal?

Saya mengkompilasi program ini dengan g ++ dan clang ++. Ada perbedaan: g ++ mencetak 1, tetapi dentang ++ mencetak 2. Tampaknya g ++: extern varible didefinisikan dalam lingkup terpendek. dentang ++: variabel ekstern didefinisikan dalam ruang lingkup global terpendek. Apakah spesifikasi C ++...

15
Hitung baris file sumber menggunakan makro?

Apakah mungkin, menggunakan preprocessor C / C ++, untuk menghitung baris dalam file sumber, menjadi makro atau semacam kompilasi-nilai waktu yang tersedia? Misalnya saya bisa mengganti MAGIC1, MAGIC2dan MAGIC3berikut ini, dan mendapatkan nilai 4 entah bagaimana saat menggunakan MAGIC3? MAGIC1 //...

15
Mencuri sumber daya dari std :: kunci peta diizinkan?

Dalam C ++, apakah boleh mencuri sumber daya dari peta yang tidak saya perlukan lagi? Lebih tepatnya, anggap saya punya kunci std::mapwith std::stringdan saya ingin membuat vektor dengan mencuri sumber daya mapkunci s yang digunakan std::move. Perhatikan bahwa akses tulis ke kunci merusak struktur...

14
std :: bit_cast dengan std :: array

Dalam ceramahnya yang baru-baru ini "Tipe punning in C ++ modern" Timur Doumler mengatakan bahwa std::bit_casttidak dapat digunakan untuk menggigit sebuah floatke dalam unsigned char[4]karena array gaya-C tidak dapat dikembalikan dari suatu fungsi. Kita harus menggunakan std::memcpyatau menunggu...