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.

3
Menjalankan fungsi di dalam templat fungsi hanya untuk tipe-tipe yang memiliki fungsi yang ditentukan
Saya memiliki templat fungsi yang membutuhkan banyak jenis input. Dari tipe-tipe itu hanya satu yang memiliki getInt()fungsi. Karenanya saya ingin kode untuk menjalankan fungsi hanya untuk tipe itu. Mohon saran solusinya. Terima kasih #include <type_traits> #include <typeinfo> class X { public: int getInt(){ return 9; } }; class Y{ }; …

2
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 () { long int res = fib(45); …
13 c++  const  constexpr 

6
Bagaimana cara membandingkan struct generik dalam C ++?
Saya ingin membandingkan struct dengan cara yang umum dan saya telah melakukan sesuatu seperti ini (saya tidak dapat membagikan sumber yang sebenarnya, jadi tanyakan lebih detail jika perlu): template<typename Data> bool structCmp(Data data1, Data data2) { void* dataStart1 = (std::uint8_t*)&data1; void* dataStart2 = (std::uint8_t*)&data2; return memcmp(dataStart1, dataStart2, sizeof(Data)) == 0; …



4
Apakah penjelasan tentang pemesanan yang santai salah dalam preferensi?
Dalam dokumentasi std::memory_orderdi cppreference.com ada contoh pemesanan santai: Pemesanan santai Operasi atom yang ditandai memory_order_relaxedbukan operasi sinkronisasi; mereka tidak memaksakan urutan di antara akses memori bersamaan. Mereka hanya menjamin konsistensi urutan atomitas dan modifikasi. Misalnya, dengan x dan y awalnya nol, // Thread 1: r1 = y.load(std::memory_order_relaxed); // A x.store(r1, …

2
jika constexpr dengan static_assert di lambda, kompiler mana yang benar?
Ketika kita ingin menggunakan static_assertdalam if constexprkita harus membuat kondisi tergantung pada beberapa parameter template. Menariknya, gcc dan dentang tidak setuju ketika kode tersebut dibungkus dengan lambda. Kode berikut dikompilasi dengan gcc, tetapi dentang memicu pernyataan, bahkan jika itu if constexprtidak benar. #include <utility> template<typename T> constexpr std::false_type False; template<typename …

1
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 <typename T> class data { public: data(datatype dt = to_datatype<T>::value) {} }; …
13 c++  c++11  visual-c++ 


2
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 'std' kesalahan C3861: 'stoi': pengidentifikasi tidak ditemukan Saya tahu itu …
13 c++ 

1
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 definisi antara versi C ++ …
13 c++  c++11  c++14  c++17  c++20 

1
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, A>& container) { for (auto& elem : container) { os << elem << " "; } return os; } int …
13 c++  c++17 


1
Mengapa variabel lokal extern bernama sama di blok yang berbeda mendapatkan hubungan yang berbeda antara kompiler di c ++?
Sementara saya hanya memeriksa hubungan mana yang diberikan kepada variabel lokal extern saya menemukan bahwa beberapa perilaku yang berbeda antara kompiler misalnya jika saya menguji kode di bawah ini seperti yang Anda lihat di variabel komentar vars memiliki hubungan yang berbeda // foo.cpp int var = 10; // external linkage …
12 c++  g++  clang++  extern  linkage 

1
Apakah `equality_comparable_with` perlu memerlukan` common_reference`?
The Konsepequality_­comparable_with<T, U> ini dimaksudkan untuk menyatakan bahwa objek dari jenis Tdan Udapat dibandingkan sama satu sama lain, dan jika mereka, maka ini memiliki arti yang diharapkan. Tidak apa-apa. Namun, konsep ini juga perlu common_reference_t<T&, U&>ada. Dorongan utama untuk common_referencedan fungsi petugasnya tampaknya adalah untuk mengaktifkan iterator proxy , untuk …

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.