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.

1
Mengapa std :: swap tidak bekerja pada elemen vektor <bool> di bawah Dentang / Menang?
Saya punya kode seperti ini: #include &lt;vector&gt; #include &lt;utility&gt; int main() { std::vector&lt;bool&gt; vb{true, false}; std::swap(vb[0], vb[1]); } Argumen tentang kewarasan vector&lt;bool&gt;samping, ini bekerja dengan baik pada: Dentang untuk Mac Visual Studio untuk Windows GCC untuk Linux Kemudian saya mencoba membangunnya dengan Dentang pada Windows dan menerima kesalahan berikut (diringkas): …

1
Dapatkah std :: konstruktor rentang vektor meminta konversi eksplisit?
Apakah program berikut ini terbentuk dengan baik? #include &lt;vector&gt; struct A { explicit A(int) {} }; int main() { std::vector&lt;int&gt; vi = {1, 2, 3, 4, 5}; std::vector&lt;A&gt; va(vi.begin(), vi.end()); } Menurut C ++ 17 [sequence.reqmts], persyaratan untuk X u(i, j); di mana Xadalah wadah urutan, adalah: Takan EmplaceConstructiblemenjadi Xdari …
14 c++  c++17 

3
Kelebihan fungsi lambda
Bagaimana cara membebani fungsi lambda lokal yang sederhana? SSE masalah asli: #include &lt;iostream&gt; #include &lt;map&gt; void read() { static std::string line; std::getline(std::cin, line); auto translate = [](int idx) { constexpr static int table[8]{ 7,6,5,4,3,2,1,0 }; return table[idx]; }; auto translate = [](char c) { std::map&lt;char, int&gt; table{ {'a', 0}, {'b', …

1
Bagaimana cara kerja implementasi c ++ nullptr?
Saya ingin tahu cara nullptrkerjanya. Standar N4659 dan N4849 mengatakan: harus memiliki tipe std::nullptr_t; Anda tidak dapat mengambil alamatnya; itu dapat langsung dikonversi ke pointer dan pointer ke anggota; sizeof(std::nullptr_t) == sizeof(void*); konversi menjadi booladalah false; nilainya dapat dikonversi ke tipe integral secara identik dengan (void*)0, tetapi tidak mundur; Jadi …

2
jika constexpr dengan static_assert di lambda, kompiler mana yang benar?
Ketika kita ingin menggunakan static_assertdalam if constexprkita harus membuat kondisi tergantung pada beberapa parameter template. Menariknya, gcc dan dentang tidak setuju ketika kode tersebut dibungkus dengan lambda. Kode berikut dikompilasi dengan gcc, tetapi dentang memicu pernyataan, bahkan jika itu if constexprtidak benar. #include &lt;utility&gt; template&lt;typename T&gt; constexpr std::false_type False; template&lt;typename …

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 

1
Operator ambigous dalam gcc
Saya membuat templat fungsi untuk mencetak beberapa wadah stl #include &lt;iostream&gt; #include &lt;vector&gt; #include &lt;string&gt; template &lt;template &lt;typename, typename&gt; class C, typename T, typename A&gt; std::ostream&amp; operator&lt;&lt;(std::ostream&amp; os, const C&lt;T, A&gt;&amp; container) { for (auto&amp; elem : container) { os &lt;&lt; elem &lt;&lt; " "; } return os; } int …
13 c++  c++17 



1
Apakah lambda yang dapat ditangkap dijamin kosong oleh standar?
Saya sedang mencari cara untuk mengidentifikasi lambda kosong (tidak bisa ditangkap) dari lambda lain dalam fungsi templat. Saat ini saya menggunakan C ++ 17 tapi saya juga penasaran untuk C ++ 20 jawaban juga. Kode saya terlihat seperti ini: template&lt;typename T&gt; auto func(T lambda) { // The aguments of the …
12 c++  lambda  c++17  c++20 


1
Sortir tanpa pengecualian () - mengapa ia dikompilasi ketika digunakan pada std :: vector dan bukan pada std :: array, dan kompiler mana yang benar?
Saat memanggil std::sort()pada std::array: #include &lt;vector&gt; #include &lt;array&gt; #include &lt;algorithm&gt; int main() { std::vector&lt;int&gt; foo{4, 1, 2, 3}; sort(begin(foo), end(foo)); std::array&lt;int, 4&gt; foo2{4, 1, 2, 3}; sort(begin(foo2), end(foo2)); } Baik gcc dan dentang mengembalikan kesalahan pada jenis di std::array- dentang kata error: penggunaan 'sort' pengidentifikasi yang tidak dideklarasikan; maksud Anda …
11 c++  c++17 

1
Bisakah variabel inline diubah setelah inisialisasi dalam C ++ 17?
Skenario saya adalah sebagai berikut (ini bekerja dalam dentang tetapi tidak dalam gcc) liba.hpp: inline int MY_GLOBAL = 0; libother.cpp: (dll) #include "myliba.hpp" void myFunc() { // MYGLOBAL = 28; } someexe.cpp: RunAppThatUsesBothLibAandLibOther(); Masalahnya adalah bahwa variabel inline menunjukkan 0 di tempat-tempat di mana saya harapkan 28 karena sudah dimodifikasi …
11 c++  visual-c++  dll  clang  c++17 


2
reset lemah_ptr mempengaruhi shared_ptr?
Saya tidak terlalu terbiasa menggunakan weak_ptrdan saya menghadapi situasi yang cukup membingungkan. Saya menggunakan Intel XE 2019 Composer pembaruan 5 ( paket 2019.5.281 ) dalam kombinasi dengan Visual Studio 2019 ver. 16.2.5 . Saya kompilasi dalam 64-bit. Saya menggunakan standar C ++ 17 . Berikut adalah kode untuk solusi spike …

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.