Pertanyaan yang diberi tag «initializer-list»


8
initializer_list dan pindahkan semantik
Apakah saya diperbolehkan untuk memindahkan elemen dari a std::initializer_list<T>? #include <initializer_list> #include <utility> template<typename T> void foo(std::initializer_list<T> list) { for (auto it = list.begin(); it != list.end(); ++it) { bar(std::move(*it)); // kosher? } } Karena std::intializer_list<T>memerlukan perhatian compiler khusus dan tidak memiliki nilai semantik seperti container normal dari pustaka standar …


6
Mengapa std :: initializer_list bukan bahasa bawaan?
Mengapa std::initializer_listbahasa inti tidak ada di dalamnya? Menurut saya, ini adalah fitur yang cukup penting dari C ++ 11 namun tidak memiliki kata kunci yang dicadangkan sendiri (atau yang serupa). Sebaliknya, initializer_listitu hanya kelas template dari pustaka standar yang memiliki pemetaan implisit khusus dari sintaks braced-init-list baru {...} yang ditangani …

5
Dapatkah saya menginisialisasi daftar vektor tipe hanya bergerak?
Jika saya meneruskan kode berikut melalui snapshot GCC 4.7 saya, ia mencoba menyalin unique_ptrs ke dalam vektor. #include <vector> #include <memory> int main() { using move_only = std::unique_ptr<int>; std::vector<move_only> v { move_only(), move_only(), move_only() }; } Jelas itu tidak dapat berfungsi karena std::unique_ptrtidak dapat disalin: kesalahan: penggunaan fungsi yang dihapus …

3
Kapan menggunakan penginisialisasi tertutup kurung kurawal?
Di C ++ 11, kita memiliki sintaks baru untuk menginisialisasi kelas yang memberi kita banyak kemungkinan bagaimana menginisialisasi variabel. { // Example 1 int b(1); int a{1}; int c = 1; int d = {1}; } { // Example 2 std::complex<double> b(3,4); std::complex<double> a{3,4}; std::complex<double> c = {3,4}; auto d …



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.