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 shift_right () dimaksudkan untuk diimplementasikan dalam C ++ 20?
Di C ++ 20, <algorithm>header mendapatkan dua algoritma baru: shift_left()danshift_right() . Keduanya menerima LegacyForwardIterator. Sebab shift_left(), ditentukan bahwa "gerakan dilakukan dengan urutan imulai dari ​0"; untuk shift_right(), ditentukan bahwa "jika ForwardItmemenuhi persyaratan LegacyBidirectionalIterator, maka gerakan dilakukan dalam urutan menurun imulai dari last - first - n - 1". Saya bisa …


1
Melewati pointer fungsi dari array pointer fungsi sebagai argumen templat
Saya ingin melewatkan pointer fungsi dari array pointer fungsi sebagai argumen templat. Kode saya tampaknya dikompilasi menggunakan MSVC meskipun Intellisense mengeluh bahwa ada sesuatu yang salah. Baik gcc dan dentang gagal mengkompilasi kode. Perhatikan contoh berikut: static void test() {} using FunctionPointer = void(*)(); static constexpr FunctionPointer functions[] = { …
9 c++  templates  c++14 



1
dentang / gcc inkonsistensi dalam spesialisasi kelas
Saya menemukan masalah ini ketika mencoba untuk mengkhususkan tuple_size/ tuple_elementuntuk kelas khusus di C ++ 17 untuk penjilidan terstruktur. Kode di bawah ini dikompilasi dalam GCC, tetapi tidak dalam dentang (kedua versi trunk, lihat tautan di bawah). #include <type_traits> template<typename T, typename... Ts> using sfinae_t = T; template<typename T, bool... …

1
Apakah baru (ini) ThisClass () ide yang buruk?
class FooView final : public Something { ... void refresh() { this->~FooView(); new (this) FooView(); } } Saya belum pernah melihat idiom ini, dan sepertinya itu bisa sangat halus dan berantakan, tetapi saya tidak dapat benar-benar memikirkan masalah dengan itu (selama FooViewfinal). Apakah ini ide yang buruk?


1
Membandingkan std :: string dan literal string C-style
Misalkan saya memiliki kode berikut: #include <iostream> #include <string> #include <iomanip> using namespace std; // or std:: int main() { string s1{ "Apple" }; cout << boolalpha; cout << (s1 == "Apple") << endl; //true } Pertanyaan saya adalah: Bagaimana sistem memeriksa di antara keduanya? s1adalah obyek sementara "Apple"adalah string …


1
Apakah diizinkan menambahkan nol ke pointer nol?
Saya tahu bahwa pointer aritmatika tidak diizinkan untuk null pointer. Tetapi bayangkan saya memiliki sesuatu seperti ini: class MyArray { int *arrayBegin; // pointer to the first array item, NULL for an empty array unsigned arraySize; // size of the array, zero for an empty array public: int *begin() const …

1
Mencoba memahami templat dan pencarian nama
Saya mencoba memahami cuplikan kode berikut Cuplikan # 1 template <typename T> struct A { static constexpr int VB = T::VD; }; struct B : A<B> { }; Baik gcc9 atau dentang melemparkan kesalahan di sini. Q. Mengapa kode ini dikompilasi? Bukankah kita instantiasi A<B>ketika mewarisi dari B? Tidak ada …

1
Cara yang tepat untuk mengembalikan pointer ke objek `baru` dari fungsi Rcpp
Pertimbangkan 1) kelas khusus dengan cetakan memori yang berpotensi besar, dan 2) fungsi tingkat atas yang melakukan beberapa pra-pemrosesan, kemudian buat dan kembalikan objek baru dari kelas khusus kami. Untuk menghindari penyalinan yang tidak perlu dengan nilai, fungsi mengalokasikan objek dan mengembalikan pointer ke sana. Berdasarkan diskusi sebelumnya , tampaknya …
9 c++  r  rcpp 

1
Apa persamaan MSVC untuk -fno-char8_t?
Dalam C ++ 20 u8string literal didasarkan pada char8_tjenisnya. Mereka dengan sengaja tidak mengonversi ke char const*lagi: const char* str = u8"Hall\u00f6chen \u2603"; // no longer valid in C++20 Tentu saja, tujuan akhir ketika bermigrasi ke C ++ 20 adalah sepenuhnya mengikuti perilaku baru (dalam contoh di atas: ubah jenis …

1
Bagaimana mencegah modifikasi untuk menyusun data?
Katakanlah saya memiliki kelas yang terlihat seperti ini (ini hanya sebuah contoh): class A { double *ptr; public: A() : ptr( new double[100] ) {} A( const A &other ) { other.ptr[7] = 15; } void doNotChangeMyData() const { ptr[43] = 14; } void changeMyData() { ptr[43] = 14; } …
9 c++  const 

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.