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

7
รหัส C ++ สามารถใช้ได้ทั้งใน C ++ 03 และ C ++ 11 แต่ทำสิ่งที่แตกต่างกันหรือไม่
เป็นไปได้หรือไม่ที่รหัส C ++ จะสอดคล้องกับทั้งมาตรฐานC ++ 03และมาตรฐานC ++ 11แต่ทำสิ่งที่แตกต่างกันไปขึ้นอยู่กับมาตรฐานที่กำลังรวบรวม?

6
ฟังก์ชั่นเสมือนจริงสามารถมีพารามิเตอร์เริ่มต้นได้หรือไม่?
ถ้าฉันประกาศคลาสฐาน (หรือคลาสอินเตอร์เฟส) และระบุค่าเริ่มต้นสำหรับพารามิเตอร์อย่างน้อยหนึ่งคลาสคลาสที่ได้รับจะต้องระบุค่าเริ่มต้นเดียวกันและถ้าไม่ค่าเริ่มต้นใดจะปรากฏในคลาสที่ได้รับ? ภาคผนวก: ฉันยังสนใจที่จะจัดการสิ่งนี้ในคอมไพเลอร์ที่แตกต่างกันและการใส่ข้อมูลใด ๆ เกี่ยวกับการปฏิบัติ "แนะนำ" ในสถานการณ์นี้
164 c++  c++11  c++03 

9
วัตถุประสงค์ของลำดับ Trigraph ใน C ++?
ตามมาตรฐาน C ++ '03 2.3 / 1: ก่อนที่การประมวลผลอื่น ๆ จะเกิดขึ้นการเกิดขึ้นของหนึ่งในลำดับต่อไปนี้ของอักขระสามตัวต่อไปนี้ ("ลำดับตรีโกณมิติ") จะถูกแทนที่ด้วยอักขระเดี่ยวที่ระบุในตารางที่ 1 ---------------------------------------------------------------------------- | trigraph | replacement | trigraph | replacement | trigraph | replacement | ---------------------------------------------------------------------------- | ??= | # | ??( | [ | ??< | { | | ??/ | \ | ??) | ] | …
128 c++  c++03  trigraphs 

8
สามารถตรวจพบความแตกต่างอะไรระหว่าง C ++ 03 และ C ++ 11 ในขณะรันไทม์
เป็นไปได้ที่จะเขียนฟังก์ชันซึ่งเมื่อคอมไพล์ด้วยคอมไพเลอร์ C จะส่งกลับ 0 และเมื่อคอมไพล์ด้วยคอมไพเลอร์ C ++ จะส่งคืน 1 (การเจือจางเล็กน้อยด้วย #ifdef __cplusplusไม่น่าสนใจ) ตัวอย่างเช่น: int isCPP() { return sizeof(char) == sizeof 'c'; } แน่นอนข้างต้นจะใช้ได้ก็ต่อเมื่อsizeof (char)ไม่เหมือนกับsizeof (int) อีกวิธีหนึ่งที่พกพาสะดวกกว่าคือสิ่งนี้: int isCPP() { typedef int T; { struct T { int a[2]; }; return sizeof(T) == sizeof(struct T); } } ฉันไม่แน่ใจว่าตัวอย่างถูกต้อง 100% แต่คุณเข้าใจแล้ว ฉันเชื่อว่ามีวิธีอื่นในการเขียนฟังก์ชันเดียวกันด้วย …

3
ค่าเริ่มต้นค่าและความยุ่งเหยิงในการเริ่มต้นเป็นศูนย์
ฉันสับสนมากเกี่ยวกับ value- & default- & zero-initialization และโดยเฉพาะอย่างยิ่งเมื่อพวกเขาเริ่มใช้มาตรฐานC ++ 03และC ++ 11ที่แตกต่างกัน(และC ++ 14 ) ฉันกำลังอ้างถึงและพยายามขยายคำตอบที่ดีจริงๆValue- / Default- / Zero- Init C ++ 98และC ++ 03ที่นี่เพื่อให้กว้างขึ้นเนื่องจากจะช่วยผู้ใช้จำนวนมากหากมีใครช่วยกรอก จำเป็นต้องมีช่องว่างเพื่อให้มีภาพรวมที่ดีว่าจะเกิดอะไรขึ้นเมื่อใด ข้อมูลเชิงลึกทั้งหมดโดยตัวอย่างโดยสรุป: บางครั้งหน่วยความจำที่ส่งคืนโดยตัวดำเนินการใหม่จะถูกเตรียมใช้งานและบางครั้งก็ไม่ขึ้นอยู่กับว่าประเภทที่คุณกำลังสร้างขึ้นใหม่นั้นเป็นPOD (ข้อมูลเก่าธรรมดา)หรือถ้าเป็นคลาสที่มีสมาชิก POD และใช้ ตัวสร้างเริ่มต้นที่สร้างโดยคอมไพเลอร์ ในC ++ 1998มีการกำหนดค่าเริ่มต้น 2 ประเภท: zero-และdefault-initialization ในC ++ 2003เป็นประเภทที่ 3 ของการเริ่มต้นการกำหนดค่าเริ่มต้นถูกเพิ่ม ในC ++ 2011 / C ++ 2014มีการเพิ่มเฉพาะรายการเริ่มต้นและกฎสำหรับค่า- …
89 c++  c++11  c++14  c++03  c++98 

10
มีเหตุผลใดที่ต้องใช้คีย์เวิร์ด 'auto' ใน C ++ 03?
โปรดทราบว่าคำถามนี้ถูกโพสต์ครั้งแรกในปี 2009 ก่อนที่ C ++ 11 จะได้รับการให้สัตยาบันและก่อนที่ความหมายของautoคำหลักจะเปลี่ยนไปอย่างมาก คำตอบที่มีให้เกี่ยวข้องเพียงไปที่ C ++ 03 ความหมายของauto- ที่ถูกชั้นจัดเก็บข้อมูลที่ระบุไว้ - และไม่ c ++ 11 ความหมายของauto- ว่าการหักชนิดอัตโนมัติ หากคุณกำลังมองหาคำแนะนำว่าควรใช้ C ++ 11 เมื่อautoใดคำถามนี้ไม่เกี่ยวข้องกับคำถามนั้น เป็นเวลานานที่สุดที่ฉันคิดว่าไม่มีเหตุผลที่จะใช้staticคีย์เวิร์ดใน C เนื่องจากตัวแปรที่ประกาศนอกขอบเขตการบล็อกนั้นมีผลทั่วโลก จากนั้นฉันค้นพบว่าการประกาศตัวแปรstaticภายในขอบเขตบล็อกจะให้ระยะเวลาถาวรและการประกาศนอกขอบเขตบล็อก (ในขอบเขตโปรแกรม) จะทำให้ขอบเขตไฟล์ (สามารถเข้าถึงได้ในหน่วยคอมไพล์นั้นเท่านั้น) ดังนั้นสิ่งนี้ทำให้ฉันมีคำหลักเพียงคำเดียวที่ฉัน (อาจ) ยังไม่เข้าใจทั้งหมด: autoคำหลัก มีความหมายอื่นนอกเหนือจาก 'ตัวแปรท้องถิ่นหรือไม่? สิ่งใดที่ไม่ได้ทำโดยปริยายสำหรับคุณทุกที่ที่คุณต้องการใช้? อย่างไรautoตัวแปรปฏิบัติตนในขอบเขตโปรแกรม? อะไรคือstatic autoตัวแปรในขอบเขตไฟล์? คำหลักนี้มีจุดประสงค์อื่นนอกเหนือจากที่มีอยู่เพื่อความสมบูรณ์หรือไม่?
85 c++  keyword  c++03 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.