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.

2
Kapan Anda membutuhkan string yang diakhiri null dalam skenario hanya baca?
Saya telah bermain-main dengan std::string_viewperpustakaan dan saya telah memikirkan untuk mengubah basis kode yang telah saya coba untuk menggunakan std::string_viewsebanyak mungkin. Namun, di banyak thread yang saya telah membaca tentang masalah kapan dan di mana untuk menggunakan std::string_viewbukan const std::string &. Saya telah melihat banyak jawaban mengatakan, "Ketika Anda tidak …

1
Apakah mungkin untuk membatasi jumlah utas untuk C ++ 17 paralel `for_each`?
Saya gunakan std::for_eachdengan std::execution::paruntuk melakukan perhitungan kompleks pada input besar yang direpresentasikan sebagai vektor struktur. Perhitungan tidak memerlukan penundaan yang terkait dengan perangkat keras (misalnya jaringan atau disk IO), itu adalah komputasi "hanya CPU". Bagi saya kelihatannya logis bahwa tidak ada gunanya membuat lebih banyak utas OS yang kami miliki …

2
VCRUNTIME140_1.dll hilang setelah membangun solusi dengan c ++
Saya telah membuat petualangan teks kecil. Saya telah membangun solusi dengan Visual Studio Community 2019 menggunakan pengaturan Release dan x64. Saya telah zip file * .exe bersama dengan file-file lain yang dihasilkan dan mengirimkannya ke pc lain yang tidak memiliki VS diinstal dan kesalahan yang Anda lihat pada gambar muncul. …
10 c++  dll 

1
Apakah diperlukan ekspresi yang diizinkan untuk "menangkap" variabel lingkup yang melampirkan?
Dalam contoh berikut, argumen fungsi digunakan untuk menguji dengan ekspresi yang membutuhkan apakah ekspresi yang menggunakannya terbentuk dengan baik. Ekspresi yang membutuhkan tidak membutuhkan argumen; menggunakan variabel dalam lingkup fungsi secara langsung: #include <cstddef> #include <vector> template<typename T> void Resize(T &v, std::size_t const n) { if constexpr (requires { v.resize(n); …

2
Apakah kompiler saya mengabaikan anggota thread_local statis saya yang tidak digunakan?
Saya ingin melakukan pendaftaran utas di kelas saya, jadi saya memutuskan untuk menambahkan tanda centang untuk thread_localfitur ini: #include <iostream> #include <thread> class Foo { public: Foo() { std::cout << "Foo()" << std::endl; } ~Foo() { std::cout << "~Foo()" << std::endl; } }; class Bar { public: Bar() { std::cout …

2
Bagaimana cara menghapus salinan saat dirantai?
Saya membuat kelas tipe chaining, seperti contoh kecil di bawah ini. Tampaknya ketika fungsi chaining anggota, maka konstruktor salinan dipanggil. Apakah ada cara untuk menghilangkan panggilan copy constructor? Dalam contoh mainan saya di bawah ini, jelas bahwa saya hanya berurusan dengan hal-hal yang bersifat sementara dan dengan demikian "harus" (mungkin …
10 c++  c++14  c++17 

3
Mengapa tidak perlu menggunakan nama samaran untuk jenis tergantung dalam kasus berikut?
Saya telah membaca tentang menghapus referensi jenis, di sini . Ini memberi contoh berikut: #include <iostream> // std::cout #include <type_traits> // std::is_same template<class T1, class T2> void print_is_same() { std::cout << std::is_same<T1, T2>() << '\n'; } int main() { std::cout << std::boolalpha; print_is_same<int, int>(); print_is_same<int, int &>(); print_is_same<int, int &&>(); …

5
Tautan dinamis - Linux Vs. Windows
Di Windows, ketika saya mengkompilasi kode C / C ++ dalam proyek DLL di MSVC saya mendapatkan 2 file: MyDll.dll MyDll.lib di mana sejauh yang saya mengerti MyDll.libmengandung beberapa jenis tabel pointer yang menunjukkan lokasi fungsi di dll. Ketika menggunakan dll ini, katakanlah dalam file exe, MyDll.libtertanam ke dalam file …


2
Pengurangan tipe otomatis yang tidak cocok antara berbagai kompiler c ++
Jadi, saya mencoba menerapkan produk titik ( https://en.wikipedia.org/wiki/Dot_product ) dalam beberapa rasa C ++ modern dan muncul dengan kode berikut: #include <iostream> template<class... Args> auto dot(Args... args) { auto a = [args...](Args...) { return [=](auto... brgs) { static_assert(sizeof...(args) == sizeof...(brgs)); auto v1 = {args...}, i1 = v1.begin(); auto v2 = …



1
SFINAE menggunakan VoidT dengan kompiler berbeda mengarah ke hasil yang berbeda
Pertimbangkan kode berikut: template <typename T> using VoidT = void; class A { public: using TEST = int; }; class C { public: using DIFFERENT = int; }; template <typename T, typename Enable = void> class B { public: B() = delete; }; template <typename T> class B<T, VoidT<typename T::TEST>> …
10 c++ 



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.