Pertanyaan yang diberi tag c++

13
Operator ambigous dalam gcc

Saya membuat templat fungsi untuk mencetak beberapa wadah stl #include <iostream> #include <vector> #include <string> template <template <typename, typename> class C, typename T, typename A> std::ostream& operator<<(std::ostream& os, const C<T,...

13
Mengapa tipe ekspresi berubah dalam C ++ antar versi?

Saya mencoba untuk memahami jenis ekspresi C ++ dan semakin banyak saya membaca, semakin bingung saya, karena saya menemukan konsep C ++ sangat sulit untuk dicerna dan oleh karena itu lebih suka sumber daya lain tetapi mereka saling bertentangan atau tidak memperhitungkan bahwa kata-kata dan...

13
Bagaimana cara menentukan file header yang akan dimasukkan?

Katakanlah saya memiliki kode di bawah ini (sangat sederhana). #include <iostream> int main() { std::cout << std::stoi("12"); } Ini mengkompilasi dengan baik pada g ++ dan dentang; Namun, gagal dikompilasi di MSVC dengan kesalahan berikut: kesalahan C2039: 'stoi': bukan anggota...

13
Kemungkinan kompiler bug di MSVC

Kode berikut dikompilasi dengan gcc dan dentang (dan banyak kompiler C ++ 11 lainnya) #include <stdint.h> typedef int datatype; template <typename T> struct to_datatype {}; template <> struct to_datatype<int16_t> { static constexpr datatype value = 1; }; template...

13
Bagaimana expr dievaluasi begitu cepat

Saya telah mencoba ekspresi const yang dievaluasi pada waktu kompilasi. Tapi saya bermain dengan contoh yang tampak sangat cepat ketika dieksekusi pada waktu kompilasi. #include<iostream> constexpr long int fib(int n) { return (n <= 1)? n : fib(n-1) + fib(n-2); } int main () {...

13
Salin Inisialisasi Daftar? Mengapa ini dikompilasi?

Saya menggunakan Microsoft Visual Studio Community 2019, V16.5.2. Saya ingin menguji inisialisasi daftar Silakan lihat program tes berikut: #include <string> void foo(std::string str) {} int main() { foo( {"str1", "str2"} ); return 0; } Ini mengkompilasi tanpa kesalahan dan...

13
Bagaimana cara kerja implementasi c ++ nullptr?

Saya ingin tahu cara nullptrkerjanya. Standar N4659 dan N4849 mengatakan: harus memiliki tipe std::nullptr_t; Anda tidak dapat mengambil alamatnya; itu dapat langsung dikonversi ke pointer dan pointer ke anggota; sizeof(std::nullptr_t) == sizeof(void*); konversi menjadi booladalah false; nilainya...