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


6
Fungsi mengembalikan ekspresi lambda
Saya ingin tahu apakah mungkin untuk menulis fungsi yang mengembalikan fungsi lambda di C ++ 11. Tentu satu masalah adalah bagaimana mendeklarasikan fungsi tersebut. Setiap lambda memiliki tipe, tetapi tipe itu tidak dapat diekspresikan dalam C ++. Saya tidak berpikir ini akan berhasil: auto retFun() -> decltype ([](int x) -> …
90 c++  function  c++11  lambda 


5
Apakah ada padanan non-atomik dari std :: shared_ptr? Dan mengapa tidak ada di <memory>?
Ini sedikit dari dua pertanyaan bagian, semua tentang atomisitas std::shared_ptr: 1. Sejauh yang saya tahu, std::shared_ptradalah satu-satunya penunjuk cerdas dalam &lt;memory&gt;atom itu. Saya bertanya-tanya apakah ada versi non-atomik yang std::shared_ptrtersedia (saya tidak dapat melihat apa pun di dalamnya &lt;memory&gt;, jadi saya juga terbuka untuk saran di luar standar, seperti yang …

5
Mengapa lambda memiliki ukuran 1 byte?
Saya bekerja dengan memori beberapa lambda di C ++, tapi saya agak bingung dengan ukurannya. Ini kode tes saya: #include &lt;iostream&gt; #include &lt;string&gt; int main() { auto f = [](){ return 17; }; std::cout &lt;&lt; f() &lt;&lt; std::endl; std::cout &lt;&lt; &amp;f &lt;&lt; std::endl; std::cout &lt;&lt; sizeof(f) &lt;&lt; std::endl; } Anda …
89 c++  c++11  lambda  c++14  sizeof 

4
Mengapa tidak ada move-assignment / move-constructor?
Saya seorang programmer sederhana. Variabel anggota kelas saya paling sering terdiri dari tipe POD dan kontainer STL. Karena itu saya jarang harus menulis operator penugasan atau menyalin konstruktor, karena ini diterapkan secara default. Tambahkan ke ini, jika saya menggunakan std::movepada objek yang tidak dapat dipindahkan, ini menggunakan operator penugasan, artinya …



3
Apa itu const void?
Deskripsi std::is_voidmenyatakan bahwa: Memberikan nilai konstanta anggota yang sama dengan true, jika T adalah tipe void, const void, volatile void, atau const volatile void. Lalu apa yang bisa const void, atau volatile void? Jawaban ini menyatakan bahwa const voidtipe pengembalian tidak valid (namun dikompilasi pada VC ++ 2015) const void …
89 c++  c++11  c++14 

4
Bagaimana cara menyimpan argumen template variadic?
Apakah mungkin untuk menyimpan paket parameter untuk digunakan nanti? template &lt;typename... T&gt; class Action { private: std::function&lt;void(T...)&gt; f; T... args; // &lt;--- something like this public: Action(std::function&lt;void(T...)&gt; f, T... args) : f(f), args(args) {} void act(){ f(args); // &lt;--- such that this will be possible } } Kemudian nanti: void …

3
Penghentian kata kunci statis… tidak lebih?
Dalam C ++ dimungkinkan untuk menggunakan statickata kunci dalam unit terjemahan untuk mempengaruhi visibilitas simbol (baik variabel atau deklarasi fungsi). Di n3092, ini sudah tidak digunakan lagi: Lampiran D.2 [depr.static] Penggunaan kata kunci statis tidak digunakan lagi saat mendeklarasikan objek dalam lingkup namespace (lihat 3.3.6). Di n3225, ini telah dihapus. …
89 c++  static  c++11  standards 

3
Default, nilai dan nol inisialisasi berantakan
Saya sangat bingung tentang nilai- &amp; default- &amp; nol-inisialisasi. dan terutama ketika mereka menendang untuk standar yang berbeda C ++ 03 dan C ++ 11 (dan C ++ 14 ). Saya mengutip dan mencoba untuk memperluas jawaban yang sangat bagus Value- / Default- / Zero- Init C ++ 98 dan …
89 c++  c++11  c++14  c++03  c++98 

5
Meneruskan petunjuk bersama sebagai argumen
Jika saya mendeklarasikan objek yang dibungkus dengan pointer bersama: std::shared_ptr&lt;myClass&gt; myClassObject(new myClass()); maka saya ingin menyampaikannya sebagai argumen untuk suatu metode: DoSomething(myClassObject); //the called method void DoSomething(std::shared_ptr&lt;myClass&gt; arg1) { arg1-&gt;someField = 4; } Apakah hal di atas hanya menambah jumlah referensi shared_pt dan semuanya keren? Atau apakah itu meninggalkan penunjuk …



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.