Pertanyaan yang diberi tag «c++11»

Gunakan tag ini untuk kode yang harus dikompilasi sebagai C ++ 11 (tidak menggunakan fitur apa pun yang diperkenalkan di C ++ 14 atau yang lebih baru).

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, …

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++ 

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 

2
Mengapa variabel enum merupakan nilai di sini?
Contoh: typedef enum Color { RED, GREEN, BLUE } Color; void func(unsigned int& num) { num++; } int main() { Color clr = RED; func(clr); return 0; } Saya mendapatkan kesalahan berikut ketika saya kompilasi ini: <source>: In function 'int main()': <source>:16:9: error: cannot bind non-const lvalue reference of type …


3
Bagaimana cara mengetahui fungsi yang dihasilkan oleh kompiler?
Saya tahu tentang fungsi yang dihasilkan kompiler, aturan tiga dan aturan lima. Dalam skenario dunia nyata, mungkin tidak sepele untuk mencari tahu persis mana fungsi yang dihasilkan kompiler (konstruktor, operator penugasan, destruktor) yang sebenarnya dibuat oleh kompiler. Apakah ada cara untuk membuat daftar fungsi yang dihasilkan kompiler untuk kelas tertentu? …
11 c++  c++11 

5
Tugas C ++ terner dari lambda
Tahu mengapa cuplikan berikut tidak dikompilasi? Ia mengeluh dengan kesalahan "error: operan to?: Have types types" auto lambda1 = [&](T& arg) { ... }; auto lambda2 = [&](T& arg) { ... }; auto lambda = condition ? lambda1 : lambda2;


2
Panggilan ke lambda tidak jelas meskipun secara eksplisit menyatakan jenis pengembalian
Fungsi kelebihan beban harus mengambil kedua functors, mengingat jenis lambda adalah decidable (castable to a std::function (tolong perbaiki saya jika saya salah). Pertanyaannya adalah: Mengapa ada kesalahan kompilasi di bawah, meskipun jenis lambda secara eksplisit didefinisikan? ( [&]() -> Type {}) Harap dicatat, bahwa untuk solusi saya saat ini, saya …

2
Pengurangan tipe argumen template templat C ++
Saya memiliki kode yang menemukan dan mencetak kecocokan suatu pola ketika melewati wadah string. Pencetakan dilakukan dalam fungsi foo yang templated Kode #include <iostream> #include <algorithm> #include <iterator> #include <vector> #include <string> #include <tuple> #include <utility> template<typename Iterator, template<typename> class Container> void foo(Iterator first, Container<std::pair<Iterator, Iterator>> const &findings) { for …

3
Bisakah nullptr dikonversi menjadi uintptr_t? Kompiler yang berbeda tidak setuju
Pertimbangkan program ini: #include <cstdint> using my_time_t = uintptr_t; int main() { const my_time_t t = my_time_t(nullptr); } Gagal mengompilasi dengan msvc v19.24: <source>(5): error C2440: '<function-style-cast>': cannot convert from 'nullptr' to 'my_time_t' <source>(5): note: A native nullptr can only be converted to bool or, using reinterpret_cast, to an integral …
10 c++  c++11  gcc  visual-c++  clang 

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 &&>(); …

1
Bagaimana cara mendapatkan jumlah elemen di std :: array <T, N> tanpa harus membuat turunannya?
Ada std::array&lt;T, N&gt;::size(), tapi ini non-statis, jadi itu membutuhkan contoh std::array. Apakah ada cara untuk mendapatkan nilai yang dikembalikan (yang merupakan Ndari std::array&lt;T, N&gt;) tanpa harus membuat turunan dari array? Untuk array normal, saya bisa menggunakan sizeof, tetapi saya melihat tidak ada jaminan itu sizeof(std::array&lt;T, N&gt;) == N * sizeof(T)benar.
9 c++  arrays  c++11  sizeof 


2
Bisakah saya menggunakan pengalokasi khusus untuk std :: array untuk kunci kriptografi yang aman?
Saya tahu std::arraybenar-benar dialokasikan dalam tumpukan, tetapi pertanyaan ini dimotivasi oleh masalah keamanan yang memerlukan dua hal: Data di std::arrayakan zerod atau acak pada kehancuran Data di std::arrayakan dikunci , sehingga tidak pernah masuk ke disk baik pada crash atau pada memori swap Biasanya, dengan std::vector, solusinya adalah membuat pengalokasi …
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.