คำถามติดแท็ก std

ไลบรารีมาตรฐาน C ++ และเนมสเปซ ใช้ร่วมกับ [c ++]

2
ทำไม std :: hash ไม่รับประกันว่าจะถูกกำหนดขึ้น?
หลังจากนี้เราใช้N4140 (มาตรฐาน C ++ 14) ตาม§ 17.6.3.4 ต้องการแฮ , ค่าที่ส่งคืนจะขึ้นอยู่กับอาร์กิวเมนต์k ในช่วงเวลาของโปรแกรมเท่านั้น [หมายเหตุ: ดังนั้นการประเมินผลทั้งหมดของการแสดงออกh(k)ที่มีค่าเหมือนกันสำหรับ kผลผลิตผลเดียวกันสำหรับการดำเนินการที่กำหนดของโปรแกรม - บันทึกท้าย] และแฮชของเทมเพลตคลาส Class 20.9.12พูดว่า ... การเริ่มต้นhash<Key>จะต้อง: (1.1) - ตอบสนองความต้องการของแฮช (17.6.3.4) ... (1.2) - ... ซึ่งหมายความว่าค่าแฮชของvalue(เช่นhash<decltype(value)>(value)) อาจใช้ค่าอื่นหากคุณรีสตาร์ทโปรแกรม แต่ทำไม ข้อ จำกัด นี้ไม่ได้อยู่ในมาตรฐานของ C ++ 11 แต่อยู่ในมาตรฐานของ C ++ 14, C ++ 17 และ C ++ 20 ในฐานะผู้ใช้ …

2
รายการ Initializer ภายใน std :: pair
รหัสนี้: #include <iostream> #include <string> std::pair<std::initializer_list<std::string>, int> groups{ { "A", "B" }, 0 }; int main() { for (const auto& i : groups.first) { std::cout << i << '\n'; } return 0; } คอมไพล์ แต่ส่งคืน segfault ทำไม? ทดสอบกับ gcc 8.3.0 และคอมไพเลอร์ออนไลน์
26 c++  std  std-pair 

1
เหตุใด std :: swap จึงไม่ทำงานบนองค์ประกอบเวกเตอร์ <bool> ใน Clang / Win
ฉันมีรหัสเช่นนี้: #include &lt;vector&gt; #include &lt;utility&gt; int main() { std::vector&lt;bool&gt; vb{true, false}; std::swap(vb[0], vb[1]); } ข้อโต้แย้งเกี่ยวกับความมีสติvector&lt;bool&gt;นอกเหนือจากนี้สิ่งนี้ใช้ได้ผลดีกับ: เสียงดังกราวสำหรับ Mac Visual Studio สำหรับ Windows GCC สำหรับ Linux จากนั้นฉันพยายามสร้างด้วย Clang บน Windows และได้รับข้อผิดพลาดต่อไปนี้ (ย่อ): error: no matching function for call to 'swap' std::swap(vb[0], vb[1]); ^~~~~~~~~ note: candidate function [with _Ty = std::_Vb_reference&lt;std::_Wrap_alloc&lt;std::allocator&lt;unsigned int&gt; &gt; …

1
เหตุใด swap ถูกเรียกโดย std :: sort ก็ต่อเมื่อคอนเทนเนอร์ของฉันมีองค์ประกอบมากกว่า 32 ตัว?
สวัสดีฉันมีคำถามง่าย ๆ : class A { public: A(int); A(const A&amp;); A&amp; operator=(const A&amp;); ~A(); private: int* ptr_; friend bool operator&lt;(const A&amp;, const A&amp;); friend void swap(A&amp;, A&amp;); }; A::A(int x) : ptr_(new int(x)) {} A::A(const A&amp; rhs) : ptr_(rhs.ptr_ ? new int(*rhs.ptr_) : nullptr) {} A&amp; A::operator = (const A …
13 c++  std  swap 

1
ทำไม std :: span ไม่มีตัวดำเนินการเปรียบเทียบ
การstd::spanออกแบบที่ไม่ได้เป็นการอ้างอิงที่มีน้ำหนักเบาไปยัง sub-region ของstd::vector/ std::array/ array แบบธรรมดาหรือไม่? มันควรจะมีตัวดำเนินการเปรียบเทียบใน API ของมันหรือไม่เพื่อให้สอดคล้องกับพวกเขา อะไรคือเหตุผลเบื้องหลังการยกเว้น หมายเหตุ: โดยผู้ประกอบการเปรียบเทียบผมหมายถึงทั้งชุดเต็ม ( &lt;, &lt;=, ... ) หรือยานอวกาศ&lt;=&gt;
10 c++  std  c++20  std-span 

3
ทำไม std :: atomic <T> :: is_lock_free () ไม่คงที่เช่นเดียวกับ constexpr
ใครสามารถบอกฉันว่า std :: atomic :: is_lock_free () ไม่คงที่เช่นเดียวกับ constexpr? มีมันไม่คงที่และ / หรือเป็น constexpr ไม่ได้ทำให้รู้สึกสำหรับฉัน
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.