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).

8
Kapan saya harus menggunakan noexcept?
Kata noexceptkunci dapat diterapkan secara tepat ke banyak tanda tangan fungsi, tetapi saya tidak yakin kapan saya harus mempertimbangkan menggunakannya dalam praktik. Berdasarkan apa yang telah saya baca sejauh ini, penambahan menit terakhir dari noexcepttampaknya mengatasi beberapa masalah penting yang muncul ketika memindahkan konstruktor. Namun, saya masih belum dapat memberikan …

6
Apa tujuan utama penggunaan std :: forward dan masalah apa yang dipecahkannya?
Dalam penerusan yang sempurna, std::forwarddigunakan untuk mengkonversi referensi nilai yang dinamai t1dan referensi nilai yang t2tidak disebutkan namanya. Apa tujuan melakukan itu? Bagaimana hal itu memengaruhi fungsi yang dipanggil innerjika kita meninggalkan t1& t2sebagai lvalues? template <typename T1, typename T2> void outer(T1&& t1, T2&& t2) { inner(std::forward<T1>(t1), std::forward<T2>(t2)); }

6
Nilai C ++ 11 dan memindahkan kebingungan semantik (pernyataan pengembalian)
Saya mencoba memahami referensi nilai dan memindahkan semantik C ++ 11. Apa perbedaan antara contoh-contoh ini, dan mana di antara mereka yang tidak memiliki salinan vektor? Contoh pertama std::vector<int> return_vector(void) { std::vector<int> tmp {1,2,3,4,5}; return tmp; } std::vector<int> &&rval_ref = return_vector(); Contoh kedua std::vector<int>&& return_vector(void) { std::vector<int> tmp {1,2,3,4,5}; return …


6
Bagaimana cara meneruskan argumen unique_ptr ke konstruktor atau fungsi?
Saya baru saja memindahkan semantik dalam C ++ 11 dan saya tidak tahu bagaimana menangani unique_ptrparameter dalam konstruktor atau fungsi. Pertimbangkan referensi kelas ini sendiri: #include <memory> class Base { public: typedef unique_ptr<Base> UPtr; Base(){} Base(Base::UPtr n):next(std::move(n)){} virtual ~Base(){} void setNext(Base::UPtr n) { next = std::move(n); } protected : Base::UPtr …


10
Wadah C ++ STL yang cukup cetak
Perhatikan pembaruan di akhir posting ini. Pembaruan: Saya telah membuat proyek publik di GitHub untuk perpustakaan ini! Saya ingin memiliki satu templat yang sekali dan untuk semua mengurus cukup mencetak semua wadah STL melalui operator<<. Dalam kode semu, saya mencari sesuatu seperti ini: template<container C, class T, String delim = …

9
Apa itu std :: janji?
Saya cukup akrab dengan C ++ 11's std::thread, std::asyncdan std::futurekomponen (misalnya lihat jawaban ini ), yang lurus ke depan. Namun, saya tidak dapat memahami apa std::promiseitu, apa yang dilakukannya dan dalam situasi apa yang paling baik digunakan. Dokumen standar itu sendiri tidak mengandung banyak informasi di luar sinopsis kelasnya, dan …

1
C ++ template typedef
saya ada kelas template<size_t N, size_t M> class Matrix { // .... }; Saya ingin membuat typedefyang membuat Vector(kolom vektor) yang setara dengan Matrixdengan ukuran N dan 1. Sesuatu seperti itu: typedef Matrix<N,1> Vector<N>; Yang menghasilkan kesalahan kompilasi. Berikut ini menciptakan sesuatu yang serupa, tetapi tidak persis apa yang saya …
369 c++  templates  c++11  typedef 

5
Mengembalikan unique_ptr dari fungsi
unique_ptr<T>tidak mengizinkan pembuatan salinan, melainkan mendukung pemindahan semantik. Namun, saya dapat mengembalikan unique_ptr<T>dari fungsi dan menetapkan nilai yang dikembalikan ke variabel. #include <iostream> #include <memory> using namespace std; unique_ptr<int> foo() { unique_ptr<int> p( new int(10) ); return p; // 1 //return move( p ); // 2 } int main() { …
367 c++  c++11  unique-ptr 

5
Kompilasi C ++ 11 dengan g ++
Saya mencoba memperbarui kompiler C ++ saya ke C ++ 11. Saya telah mencari sedikit dan saya sampai pada kesimpulan bahwa saya harus menggunakan bendera -std=c++0xatau -std=gnu++0x, tetapi saya tidak tahu banyak hal tentang bendera. Ada yang bisa bantu saya? (Saya menggunakan Ubuntu 12.04.) Berikut adalah kesalahan yang saya dapatkan …
367 c++  c++11  g++  flags 

14
Bagaimana cara mengaktifkan C ++ 11 di CMake?
Ketika saya mencoba menjalankan makefile CMake yang dihasilkan untuk mengkompilasi program saya, saya mendapatkan kesalahan itu rentang berbasis loop tidak didukung dalam mode C ++ 98. Saya mencoba menambahkan add_definitions(-std=c++0x)ke saya CMakeLists.txt, tetapi tidak membantu. Saya mencoba ini juga: if(CMAKE_COMPILER_IS_GNUCXX) add_definitions(-std=gnu++0x) endif() Ketika saya melakukannya g++ --version, saya mendapatkan: g …
356 c++11  cmake 


14
Kapan Anda harus menggunakan kemampuan constexpr di C ++ 11?
Tampak bagi saya bahwa memiliki "fungsi yang selalu mengembalikan 5" adalah memecah atau melemahkan arti "memanggil fungsi". Pasti ada alasan, atau kebutuhan untuk kemampuan ini atau itu tidak akan ada di C ++ 11. Kenapa disana? // preprocessor. #define MEANING_OF_LIFE 42 // constants: const int MeaningOfLife = 42; // constexpr-function: …
337 c++  c++11  constexpr 


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.