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

C ++ เป็นภาษาโปรแกรมทั่วไป เดิมได้รับการออกแบบให้เป็นส่วนขยายของ C และมีไวยากรณ์ที่คล้ายกัน แต่ตอนนี้มันเป็นภาษาที่แตกต่างอย่างสิ้นเชิง ใช้แท็กนี้สำหรับคำถามเกี่ยวกับรหัส (จะ) คอมไพล์ด้วยคอมไพเลอร์ C ++ ใช้แท็กเฉพาะรุ่นสำหรับคำถามที่เกี่ยวข้องกับการแก้ไขมาตรฐานเฉพาะ [C ++ 11], [C ++ 14], [C ++ 17] หรือ [C ++ 20] เป็นต้น

10
การแปลงตัวชี้เป็นจำนวนเต็ม
ฉันกำลังพยายามปรับรหัสที่มีอยู่ให้เป็นเครื่อง 64 บิต ปัญหาหลักคือในฟังก์ชันหนึ่ง coder ก่อนหน้านี้ใช้อาร์กิวเมนต์ void * ที่ถูกแปลงเป็นประเภทที่เหมาะสมในฟังก์ชันนั้นเอง ตัวอย่างสั้น ๆ : void function(MESSAGE_ID id, void* param) { if(id == FOO) { int real_param = (int)param; // ... } } แน่นอนในเครื่อง 64 บิตฉันได้รับข้อผิดพลาด: error: cast from 'void*' to 'int' loses precision ฉันต้องการแก้ไขสิ่งนี้เพื่อให้มันยังคงทำงานบนเครื่อง 32 บิตและสมบูรณ์ที่สุด ความคิดใด ๆ ?
88 c++  gcc  casting  64-bit  32-bit 



6
ฉันจะรวมค่าแฮชใน C ++ 0x ได้อย่างไร
C ++ 0x hash<...>(...)เพิ่ม ฉันไม่สามารถหาhash_combineแต่ฟังก์ชั่นที่นำเสนอในการเพิ่ม อะไรคือวิธีที่สะอาดที่สุดในการนำสิ่งนี้ไปใช้? บางทีอาจจะใช้ C ++ 0x xor_combine?
87 c++  c++11  boost  hash  std 

7
เราต้องใช้ตัวสร้างสำเนาเมื่อใด
ฉันรู้ว่าคอมไพเลอร์ C ++ สร้างตัวสร้างการคัดลอกสำหรับคลาส ในกรณีใดที่เราต้องเขียนตัวสร้างสำเนาที่ผู้ใช้กำหนดเอง คุณสามารถยกตัวอย่างได้หรือไม่?

1
C ++ 11: จำนวนพารามิเตอร์ฟังก์ชันแม่แบบตัวแปร?
ฉันจะนับจำนวนอาร์กิวเมนต์ของฟังก์ชันเทมเพลตตัวแปรได้อย่างไร กล่าวคือ: template<typename... T> void f(const T&... t) { int n = number_of_args(t); ... } วิธีใดที่ดีที่สุดในการนำไปใช้number_of_argsในข้างต้น

6
เหตุใดการอ้างอิงจึงไม่ใช่ "const" ใน C ++
เราทราบว่า "ตัวแปร const" บ่งชี้ว่าเมื่อกำหนดแล้วคุณจะไม่สามารถเปลี่ยนตัวแปรได้เช่นนี้: int const i = 1; i = 2; โปรแกรมด้านบนจะไม่สามารถคอมไพล์ได้ gcc แจ้งข้อผิดพลาด: assignment of read-only variable 'i' ไม่มีปัญหาฉันเข้าใจได้ แต่ตัวอย่างต่อไปนี้อยู่นอกเหนือความเข้าใจของฉัน: #include<iostream> using namespace std; int main() { boolalpha(cout); int const i = 1; cout << is_const<decltype(i)>::value << endl; int const &ri = i; cout << is_const<decltype(ri)>::value << endl; …

2
เหตุใด C และ C ++ จึงอนุญาตให้ใช้นิพจน์ (int) + 4 * 5
(int) + 4*5; นี่คือเหตุผลที่(การเพิ่มชนิดที่มีค่า)ไปได้หรือไม่ (ลองใช้ g ++ และ gcc.) ฉันรู้ว่ามันไม่สมเหตุสมผล (และไม่มีผล) แต่ฉันอยากรู้ว่าทำไมถึงเป็นไปได้

10
ทำไมฉันถึงชอบใช้เวกเตอร์เพื่อ deque
ตั้งแต่ ทั้งคู่เป็นคอนเทนเนอร์หน่วยความจำที่ต่อเนื่องกัน คุณลักษณะที่ชาญฉลาด deque มีเวกเตอร์เกือบทุกอย่าง แต่มีมากกว่านั้นเนื่องจากการแทรกที่ด้านหน้ามีประสิทธิภาพ ทำไมทุกคน Whould ต้องการstd::vectorเพื่อstd::deque?
87 c++  stl  vector  deque 

2
"ผิด" อะไรกับ C ++ wchar_t และ wstrings มีทางเลือกใดบ้างสำหรับอักขระแบบกว้าง
ฉันเคยเห็นผู้คนจำนวนมากในชุมชน C ++ (โดยเฉพาะ ## c ++ บน freenode) ไม่พอใจการใช้wstringsและwchar_tและการใช้งานของพวกเขาใน windows api อะไรคือสิ่งที่ "ผิด" กันแน่wchar_tและwstringและถ้าฉันต้องการสนับสนุนความเป็นสากลจะมีทางเลือกอื่นใดบ้างสำหรับอักขระแบบกว้าง

16
วิธีเขียนโค้ดตัวดำเนินการ modulo (%) ใน C / C ++ / Obj-C ที่จัดการตัวเลขติดลบ
สัตว์เลี้ยงตัวหนึ่งของฉันเกลียดภาษาที่ได้รับ C (ในฐานะนักคณิตศาสตร์) ก็คือ (-1) % 8 // comes out as -1, and not 7 fmodf(-1,8) // fails similarly ทางออกที่ดีที่สุดคืออะไร? C ++ ช่วยให้แม่แบบและตัวดำเนินการทำงานมากเกินไป แต่ทั้งสองอย่างนี้เป็นน้ำที่ขุ่นมัวสำหรับฉัน ตัวอย่างที่ได้รับอย่างซาบซึ้ง

15
ตัวดำเนินการ Unary plus ทำอะไร?
ตัวดำเนินการ Unary plus ทำอะไร? มีคำจำกัดความหลายอย่างที่ฉันพบ ( ที่นี่และที่นี่ ) แต่ฉันยังไม่รู้ว่าจะใช้ทำอะไร ดูเหมือนว่ามันจะไม่ได้ทำอะไรเลย แต่มันมีเหตุผลใช่มั้ย?
87 c#  c++  c  unary-operator 

5
C ++ - เหตุใดจึงไม่สามารถสร้างฟังก์ชันสมาชิกแบบคงที่ด้วยคุณสมบัติ 'const'
วันนี้ฉันมีปัญหา ฉันต้องการstaticฟังก์ชั่นสมาชิกconstไม่ใช่สิ่งที่จำเป็น แต่เป็นสิ่งที่ดีกว่า แต่ฉันไม่ประสบความสำเร็จในความพยายามของฉัน ใครสามารถพูดได้ว่าทำไมหรืออย่างไร?


5
“ Objective-C คือส่วนเหนือของ C ที่เคร่งครัดกว่า C ++” หมายความว่าอย่างไร
จากสิ่งที่ฉันอ่าน: เหตุใด Objective-C จึงไม่ได้รับความนิยมมากนักนอกชุมชน Apple Objective-C เป็นส่วนเสริมของ C (ที่จริงแล้วเคร่งครัดกว่า C ++ มาก) ดังนั้นปัญหาความเข้ากันได้แบบย้อนหลังจึงไม่เกิดขึ้น ทุกสิ่งที่คุณทำได้ใน C คุณสามารถทำได้ใน Objective-C การเป็นซูเปอร์เซ็ตเป็นไบนารีเช่นการตั้งครรภ์ Obj-C เป็นส่วนเหนือของ C และ C ++ ไม่ใช่ superset หมายถึงอะไร? Object-C จะใกล้เคียงกว่า // เข้ากันได้กับ C ในทางใด Object-C ปฏิบัติตามปรัชญา C อย่างใกล้ชิดมากกว่า C ++ อย่างไร โปรแกรม C ใด ๆ สามารถคอมไพล์โดยไม่ต้องดัดแปลงโดยคอมไพเลอร์ Object-C (เข้ากันได้ 100%)? นี่เป็นคำถามเกี่ยวกับการออกแบบภาษาโปรแกรมและความเข้ากันได้มากกว่าสงครามที่ว่าอันไหนดีกว่ากัน
87 c++  objective-c  c 

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