คำถามติดแท็ก c++17

C ++ 17 เป็นชื่อของมาตรฐาน C ++ ที่ได้รับการอนุมัติในปี 2017 มันสร้างตามมาตรฐาน C ++ 14 ก่อนหน้าปรับปรุงภาษาแกนกลางและไลบรารีมาตรฐานและเพิ่มคุณสมบัติภาษาใหม่บางอย่าง

1
ฟีเจอร์ใหม่ใน C ++ 17 คืออะไร
ล็อคแล้ว คำถามและคำตอบนี้ถูกล็อคเนื่องจากคำถามอยู่นอกหัวข้อ แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ ตอนนี้ C ++ 17 เสร็จสมบูรณ์แล้วดังนั้นจึงไม่น่าจะมีการเปลี่ยนแปลงครั้งใหญ่ มีการเสนอข้อเสนอหลายร้อยรายการสำหรับ C ++ 17 คุณลักษณะใดบ้างที่ถูกเพิ่มลงใน C ++ ใน C ++ 17 เมื่อใช้คอมไพเลอร์ C ++ ที่รองรับ "C ++ 1z" ฟีเจอร์ใดบ้างที่จะใช้งานได้เมื่อคอมไพเลอร์อัพเดตเป็น C ++ 17?
1007 c++  standards  c++-faq  c++17 

6
Aggregates และ PODs คืออะไรและทำไมพิเศษ?
นี้คำถามที่พบบ่อยเป็นเรื่องเกี่ยวกับปริมาณและ PODs และครอบคลุมวัสดุดังต่อไปนี้: อะไรคือมวล ? อะไรคือPOD s (ข้อมูล Plain Old)? พวกเขาเกี่ยวข้องกันอย่างไร พวกเขาพิเศษอย่างไรและทำไม การเปลี่ยนแปลงสำหรับ C ++ 11 คืออะไร

6
กฎการยกเลิก Iterator
กฎการตรวจสอบความถูกต้องของตัววนซ้ำสำหรับคอนเทนเนอร์ C ++ มีอะไรบ้าง โดยเฉพาะอย่างยิ่งในรูปแบบรายการสรุป (หมายเหตุ: นี่คือหมายถึงการเป็นรายการที่จะกองมากเกินของ C ++ คำถามที่พบบ่อย . ถ้าคุณต้องการที่จะวิจารณ์ความคิดของการให้คำถามที่พบบ่อยในรูปแบบนี้แล้วโพสต์บนเมตาที่เริ่มต้นทั้งหมดนี้ . จะเป็นสถานที่ที่จะทำเช่นนั้นได้คำตอบ คำถามนั้นได้รับการตรวจสอบในห้องสนทนา C ++ซึ่งแนวคิด FAQ เริ่มต้นตั้งแต่แรกดังนั้นคำตอบของคุณมีโอกาสมากที่จะได้รับการอ่านโดยผู้ที่คิดแนวคิดนี้)
543 c++  c++11  iterator  c++17  c++-faq 

28
enum เป็นสตริงใน C ++ 11 / C ++ 14 / C ++ 17 ที่ทันสมัยและ C ++ ในอนาคต 20
ตรงกันข้ามกับคำถามที่คล้ายกันทั้งหมดคำถามนี้เกี่ยวกับการใช้คุณสมบัติ C ++ ใหม่ 2008 ค มีวิธีง่าย ๆ ในการแปลง C ++ enum เป็นสายอักขระ? 2008 ค วิธีง่ายๆในการใช้ตัวแปรประเภท enum เป็นสตริงใน C? 2008 C ++ วิธีการแมป c ++ enums กับสตริงได้อย่างง่ายดาย 2008 C ++ ทำบางสิ่งบางอย่างทั้งตัวระบุ C และสตริง? 2008 C ++ มีสคริปต์ง่าย ๆ ในการแปลง C ++ enum เป็นสตริงหรือไม่ 2009 C ++ จะใช้ enums เป็นค่าสถานะใน C …
354 c++  string  enums  c++17  c++20 

1
วัตถุประสงค์ของการ std :: launder คืออะไร?
P0137แนะนำเทมเพลตฟังก์ชั่น std::launderและทำการเปลี่ยนแปลงมากมายในมาตรฐานในส่วนที่เกี่ยวข้องกับสหภาพอายุการใช้งานและพอยน์เตอร์ ปัญหานี้แก้ไขได้อย่างไร การเปลี่ยนแปลงภาษาที่ฉันต้องระวังคืออะไร และสิ่งที่เราlaunderไอเอ็นจี?

5
std :: string_view เร็วกว่า const std :: string & อย่างไร
std::string_viewได้ทำให้มันไปที่ C ++ 17 const std::string&และจะมีการใช้กันอย่างแพร่หลายในการใช้มันแทน เหตุผลหนึ่งคือประสิทธิภาพ ใครสามารถอธิบายได้ว่า std::string_view / จะเร็วกว่าconst std::string&เมื่อใช้เป็นชนิดพารามิเตอร์อย่างไร (สมมติว่าไม่มีสำเนาใน callee)
221 c++  string  c++17  string-view 

4
อะไรที่ทำให้ i = i ++ + 1; ถูกกฎหมายใน C ++ 17?
ก่อนที่คุณจะเริ่มตะโกนพฤติกรรมที่ไม่ได้กำหนดสิ่งนี้จะปรากฏในN4659 (C ++ 17) อย่างชัดเจน i = i++ + 1; // the value of i is incremented ยังอยู่ในN3337 (C ++ 11) i = i++ + 1; // the behavior is undefined มีอะไรเปลี่ยนแปลง จากสิ่งที่ฉันสามารถรวบรวมได้จาก[N4659 basic.exec] ยกเว้นที่ระบุไว้การประเมินผลของตัวถูกดำเนินการของแต่ละตัวดำเนินการและ subexpressions ของแต่ละนิพจน์จะไม่เกิดขึ้น [... ] การคำนวณค่าของตัวถูกดำเนินการของผู้ประกอบการจะถูกจัดลำดับก่อนที่การคำนวณมูลค่าของผลลัพธ์ของผู้ประกอบการ หากผลข้างเคียงต่อตำแหน่งหน่วยความจำนั้นไม่สัมพันธ์กันกับผลข้างเคียงอื่นในตำแหน่งหน่วยความจำเดียวกันหรือการคำนวณค่าโดยใช้ค่าของวัตถุใด ๆ ในตำแหน่งหน่วยความจำเดียวกันและอาจไม่เกิดขึ้นพร้อมกันพฤติกรรมจะไม่ถูกกำหนด ตำแหน่งที่กำหนดค่าไว้ที่[N4659 basic.type] สำหรับประเภทที่คัดลอกได้เล็กน้อยการแทนค่าเป็นชุดของบิตในการแสดงวัตถุที่กำหนดค่าซึ่งเป็นองค์ประกอบที่แยกจากกันหนึ่งชุดของการกำหนดค่าการนำไปปฏิบัติ จาก[N3337 basic.exec] ยกเว้นที่ระบุไว้การประเมินผลของตัวถูกดำเนินการของแต่ละตัวดำเนินการและ subexpressions …

6
C ++ 11, 14, 17 หรือ 20 มีค่าคงที่มาตรฐานสำหรับ pi หรือไม่?
มีปัญหาค่อนข้างโง่กับหมายเลข pi ใน C และ C ++ เท่าที่ฉันรู้M_PIกำหนดไว้math.hไม่จำเป็นต้องมีมาตรฐาน มาตรฐาน C ++ ใหม่แนะนำคณิตศาสตร์ที่ซับซ้อนจำนวนมากในไลบรารีมาตรฐาน - ฟังก์ชันไฮเพอร์โบลิกstd::hermiteและstd::cyl_bessel_iเครื่องกำเนิดเลขสุ่มที่แตกต่างกันเป็นต้น มาตรฐาน 'ใหม่' มีค่าคงที่สำหรับ pi หรือไม่? ถ้าไม่ - ทำไม คณิตศาสตร์ที่ซับซ้อนทั้งหมดนี้ทำงานอย่างไรหากปราศจากมัน? ฉันตระหนักถึงคำถามที่คล้ายกันเกี่ยวกับ pi ใน C ++ (เป็นเวลาหลายปีและมาตรฐานเก่า); ฉันต้องการทราบสถานะปัจจุบันของปัญหา ฉันสนใจด้วยเช่นกันว่าทำไมทำไม C ++ ถึงไม่มีค่าคงที่ pi แต่มีคณิตศาสตร์ที่ซับซ้อนกว่าเยอะ UPD: ฉันรู้ว่าฉันสามารถกำหนด pi ตัวเองเป็น 4 * atan (1) หรือ acos (1) หรือ double pi …

1
string_view คืออะไร
string_viewเป็นคุณลักษณะที่เสนอภายใน C ++ Library Fundamentals TS ( N3921 ) เพิ่มใน C ++ 17 เท่าที่ฉันเข้าใจมันเป็นประเภทที่เป็นตัวแทนของสตริง "แนวคิด" บางอย่างที่เป็นมุมมองของภาชนะประเภทใด ๆ ที่สามารถเก็บสิ่งที่ดูได้เป็นสตริง ถูกต้องหรือไม่ ควรเป็นconst std::string&พารามิเตอร์แบบบัญญัติ string_viewหรือไม่ มีประเด็นสำคัญอีกข้อหนึ่งที่string_viewต้องพิจารณาหรือไม่?

4
std :: lock_guard หรือ std :: scoped_lock?
C ++ 17 แนะนำคลาสล็อคใหม่ที่เรียกว่าstd::scoped_lock. เมื่อพิจารณาจากเอกสารแล้วจะดูเหมือนกับstd::lock_guardคลาสที่มีอยู่แล้ว อะไรคือความแตกต่างและฉันควรใช้เมื่อใด?

9
วิธีที่สวยงามที่สุดในการเขียน 'if' แบบครั้งเดียว
เนื่องจาก C ++ 17 เราสามารถเขียนifบล็อกที่จะดำเนินการได้ทันทีดังนี้: #include <iostream> int main() { for (unsigned i = 0; i < 10; ++i) { if (static bool do_once = true; do_once) { // Enter only once std::cout << "hello one-shot" << std::endl; // Possibly much more code do_once = false; } } } ฉันรู้ว่าฉันอาจคิดมากเกินไปและมีวิธีอื่นในการแก้ปัญหานี้ …
138 c++  if-statement  c++17 

6
แลมด้ากลับมาเอง: ถูกกฎหมายหรือไม่?
พิจารณาโปรแกรมที่ไร้ประโยชน์นี้: #include <iostream> int main(int argc, char* argv[]) { int a = 5; auto it = [&](auto self) { return [&](auto b) { std::cout << (a + b) << std::endl; return self(self); }; }; it(it)(4)(6)(42)(77)(999); } โดยพื้นฐานแล้วเราพยายามสร้างแลมด้าที่คืนค่าตัวเอง MSVC รวบรวมโปรแกรมและทำงาน gcc รวบรวมโปรแกรมและ segfaults เสียงดังปฏิเสธโปรแกรมด้วยข้อความ: error: function 'operator()<(lambda at lam.cpp:6:13)>' with deduced …

3
ตัวแปรอินไลน์ทำงานอย่างไร?
ในการประชุมมาตรฐาน Oulu ISO C ++ 2016 ข้อเสนอที่เรียกว่าInline Variablesได้รับการโหวตให้เป็น C ++ 17 โดยคณะกรรมการมาตรฐาน ในแง่ของคนธรรมดาตัวแปรอินไลน์คืออะไรทำงานอย่างไรและมีประโยชน์อะไร ควรประกาศกำหนดและใช้ตัวแปรอินไลน์อย่างไร?
124 c++  c++17 

3
polymorphic_allocator: ฉันควรใช้เมื่อใดและทำไม
นี่เป็นวิธีการในcppreference , นี่คือร่างการทำงาน ฉันต้องยอมรับว่าฉันไม่เข้าใจว่าจุดประสงค์ที่แท้จริงคืออะไรpolymorphic_allocatorและเมื่อไหร่ / ทำไม / ฉันควรใช้มันอย่างไร ตัวอย่างเช่นpmr::vectorมีลายเซ็นดังต่อไปนี้: namespace pmr { template <class T> using vector = std::vector<T, polymorphic_allocator<T>>; } อะไรpolymorphic_allocatorข้อเสนอ? std::pmr::vectorข้อเสนออะไรเช่นกันในเรื่องของสมัยเก่าstd::vector? ฉันจะทำอะไรได้บ้างที่ฉันไม่สามารถทำได้จนถึงตอนนี้? วัตถุประสงค์ที่แท้จริงของผู้จัดสรรนั้นคืออะไรและเมื่อใดที่ฉันควรใช้จริง?
122 c++  allocator  c++17 

5
วิธีเปิดใช้งานการคอมไพล์ C ++ 17 ใน Visual Studio
ฉันต้องการใช้คุณสมบัติ C ++ 17 ฉันจะเปลี่ยนการคอมไพล์จาก C ++ 14 เป็น C ++ 17 ใน Microsoft Visual Studio ได้อย่างไร หรือไม่สามารถใช้งานได้ใน VS เวอร์ชันที่วางจำหน่าย?

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.