Pertanyaan yang diberi tag «c++17»

C ++ 17 adalah nama standar C ++ yang disetujui pada 2017. Ini dibangun berdasarkan standar C ++ 14 sebelumnya, meningkatkan bahasa inti dan pustaka standar, dan menambahkan beberapa fitur bahasa baru.

3
Bagaimana saya bisa membuat produk Cartesian dari daftar tipe di C ++?
Cukup jelas. Pada dasarnya, katakan saya memiliki daftar jenis seperti: using type_list_1 = type_list<int, somestructA>; using type_list_2 = type_list<somestructB>; using type_list_3 = type_list<double, short>; Mereka bisa menjadi nomor variadic dari daftar jenis. Bagaimana cara saya mendapatkan daftar produk Cartesian? result = type_list< type_list<int, somestructB, double>, type_list<int, somestructB, short>, type_list<somestructA, somestructB, …

3
Apakah deleter shared_ptr disimpan di memori dialokasikan oleh pengalokasi khusus?
Katakanlah saya punya shared_ptrdengan pengalokasi khusus dan deleter khusus. Saya tidak dapat menemukan apa pun dalam standar yang berbicara tentang di mana deleter harus disimpan: ia tidak mengatakan bahwa pengalokasi kustom akan digunakan untuk memori deleter, dan tidak mengatakan bahwa itu tidak akan terjadi. Apakah ini tidak ditentukan atau saya …

4
Konversi tersirat tidak diizinkan untuk dikembalikan
#include <optional> bool f() { std::optional<int> opt; return opt; } Tidak mengkompilasi: 'return': cannot convert from 'std::optional<int>' to 'bool' Referensi konsultasi Saya akan berpikir untuk menemukan penjelasan, tetapi saya membacanya sebagaimana mestinya ok. Konversi tersirat dilakukan setiap kali ekspresi dari beberapa tipe T1 digunakan dalam konteks yang tidak menerima tipe …

3
Split tipe std :: varian yang diberikan oleh kriteria yang diberikan
Bagaimana dengan jenis varian yang diberikan using V = std::variant<bool, char, std::string, int, float, double, std::vector<int>>; mendeklarasikan dua tipe varian using V1 = std::variant<bool, char, int, float, double>; using V2 = std::variant<std::string, std::vector<int>>; dari mana V1menyertakan semua jenis aritmatika dari Vdan V2termasuk semua jenis non-aritmatika dari V? V bisa menjadi …
20 c++  c++17  std-variant 


4
Apakah valid menggunakan std :: transform with std :: back_inserter?
Cppreference memiliki kode contoh ini untuk std::transform: std::vector<std::size_t> ordinals; std::transform(s.begin(), s.end(), std::back_inserter(ordinals), [](unsigned char c) -> std::size_t { return c; }); Tetapi juga dikatakan: std::transformtidak menjamin aplikasi unary_opatau binary_op. Untuk menerapkan fungsi ke urutan secara berurutan atau menerapkan fungsi yang memodifikasi elemen urutan, gunakan std::for_each. Ini mungkin untuk memungkinkan implementasi …

1
Mengapa std :: konstruktor atom berperilaku berbeda di C ++ 14 dan C ++ 17
Saya sedang mengerjakan proyek dengan C ++ 11 dan saya mencoba kode berikut #include <atomic> struct A { std::atomic_int idx = 1; }; int main() { return 0; } Saya mendapatkan kesalahan kompilator error: use of deleted function 'std::__atomic_base<_IntTp>::__atomic_base(const std::__atomic_base<_IntTp>&) [with _ITp = int]' std::atomic_int idx = 1; ^ Hasil …
19 c++  c++14  c++17  stdatomic 

4
Continuous enum C ++ 11
Apakah ada cara untuk memeriksa C ++ 11 jika enum kontinu ? Ini sepenuhnya valid untuk memberikan nilai enum yang bukan. Apakah mungkin ada fitur seperti jenis sifat di C ++ 14, C ++ 17 atau mungkin C ++ 20 untuk memeriksa apakah enum kontinu? Ini untuk digunakan dalam static_assert. …
17 c++  c++11  c++14  c++17  c++20 


1
std :: pair <auto, auto> ketik kembali
Aku sedang bermain-main dengan autodi std::pair. Dalam kode di bawah ini, fungsi fseharusnya mengembalikan std::pairtipe yang bergantung pada parameter templat. Contoh kerja: CONTOH 1 template &lt;unsigned S&gt; auto f() { if constexpr (S == 1) return std::pair{1, 2}; // pair of ints else if constexpr (S == 2) return std::pair{1.0, …

1
Bagaimana kompiler c ++ menemukan variabel eksternal?
Saya mengkompilasi program ini dengan g ++ dan clang ++. Ada perbedaan: g ++ mencetak 1, tetapi dentang ++ mencetak 2. Tampaknya g ++: extern varible didefinisikan dalam lingkup terpendek. dentang ++: variabel ekstern didefinisikan dalam ruang lingkup global terpendek. Apakah spesifikasi C ++ memiliki spesifikasi tentang itu? main.cpp #include …


1
Apakah ini bug di std :: gcd?
Saya menemukan perilaku std::gcdyang tidak terduga ini: #include &lt;iostream&gt; #include &lt;numeric&gt; int main() { int a = -120; unsigned b = 10; //both a and b are representable in type C using C = std::common_type&lt;decltype(a), decltype(b)&gt;::type; C ca = std::abs(a); C cb = b; std::cout &lt;&lt; a &lt;&lt; ' ' …


2
Apakah GCC9 menghindari keadaan std :: varian yang tidak bernilai diizinkan?
Saya baru-baru ini mengikuti diskusi Reddit yang mengarah ke perbandingan yang bagus dari std::visitoptimasi di kompiler. Saya perhatikan hal berikut: https://godbolt.org/z/D2Q5ED Baik GCC9 dan Clang9 (saya kira mereka berbagi stdlib yang sama) tidak menghasilkan kode untuk memeriksa dan melempar pengecualian yang tidak bernilai ketika semua jenis memenuhi beberapa persyaratan. Ini …

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.