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

คำถามเกี่ยวกับ C ++ ซึ่งเป็นภาษาการเขียนแบบสแตติกแบบหลายกระบวนทัศน์รวบรวมภาษาการเขียนโปรแกรมสำหรับวัตถุประสงค์ทั่วไป

1
เป็นไปได้หรือไม่ที่จะสร้างพอร์ตจากแอปพลิเคชัน C ++ ไปยัง Java ผ่าน LLVM
มันทำงานได้อย่างไรกับพอร์ตแอปพลิเคชัน C ++ ไปยัง Java bytecode โดยใช้ LLVM (ฉันเดา LLJVM) สิ่งที่เป็นอยู่ในปัจจุบันคือเรามีกระบวนการเขียนใน C ++ แต่ไคลเอนต์ใหม่ได้รับคำสั่งให้สามารถรันโปรแกรมในรูปแบบที่หลากหลายโดยใช้ Java Virtual Machine ที่ไม่มีรหัสพื้นเมือง (ไม่มี JNI) แนวคิดคือสามารถนำ jar ที่สร้างขึ้นมาและคัดลอกไปยังระบบอื่น (Linux, Win, 32 bits - 64 bits) และควรใช้งานได้ มองไปรอบ ๆ ดูเหมือนว่ามันเป็นไปได้ที่จะรวบรวมรหัส C ++ กับ LLVM IR และจากนั้นรหัสไปยัง java bytecode ไม่จำเป็นต้องใช้รหัสที่สร้างขึ้นเพื่อให้สามารถอ่านได้ ฉันมีการทดสอบเล็กน้อยกับสิ่งที่คล้ายกันโดยใช้ emscripten นี้ใช้รหัส C ++ และรวบรวมไปยัง JavaScript …
9 java  c++  porting 

6
ทีมของฉันควรใช้มาตรฐานการเข้ารหัสที่ได้รับการยอมรับเป็นพื้นฐานของตัวเองหรือไม่?
ทีมวิจัยและพัฒนาที่ฉันอยู่ได้ตัดสินใจใช้มาตรฐานการเข้ารหัส เราเพิ่งก่อตั้งเมื่อไม่นานมานี้และมีรหัสน้อยเกินไปและเวลาการเข้ารหัสทั่วไปของเราเองที่จะยึดมาตรฐาน / เอกสารการประชุมว่าสิ่งใดที่มีการพัฒนาโดยทั่วไปในทีมของเราและจากตัวอย่างที่ดีจากรหัสของเราเองเป็นต้น ตอนนี้พวกเราทุกคนมีประสบการณ์จากสถานที่ทำงานที่ผ่านมา - แม้ว่าเราจะไม่มีใครพูดว่า "เราขอรับรองเอกสารฉบับนี้ที่นี่ฉันพบว่าเหมาะสำหรับงานที่เราทำที่นี่" (*) นอกจากนี้พวกเราบางคน (รวมถึงตัวฉันเอง) มีประสบการณ์จากสถานที่ที่ไม่มีมาตรฐานการเข้ารหัสอย่างเป็นทางการเท่านั้นหรือการเขียนในภาษาต่าง ๆ ในสภาพแวดล้อมที่แตกต่างกัน (สภาพแวดล้อมการผลิตที่มีแรงกดดันสูงทุกสัปดาห์ หนึ่งในตัวเลือกที่ฉันคิดอยู่ก็คือการนำเอกสารที่เป็นที่รู้จักและได้รับการยอมรับมาอย่างดีคัดลอกสิ่งที่เราไม่สนใจ / สนใจและทำการแก้ไขตามความต้องการของเรา นี่เป็นเรื่องธรรมดาไหม คุณเชื่อว่านี่เป็นความคิดที่ดีหรือไม่? ถ้าเป็นเช่นนั้นสิ่งที่จะเป็นมาตรฐานการเข้ารหัส 'พื้นฐาน' ที่เหมาะสม (อย่าบอกฉันว่าอะไรดีที่สุดฉันไม่ต้องการเริ่มต้นความขัดแย้งทางศาสนาที่นี่เพียงแค่ชี้ให้เห็นว่าอะไรจะครอบคลุมหรือ 'เป็นกลาง' พอที่จะสร้าง .) หมายเหตุ: เราคาดว่าจะทำงานกับ C, C ++, OpenCL, CUDA, Python เราเป็นทีมงานของ 4 คน + ผู้จัดการคาดว่าจะเติบโตประมาณ 5-6 ภายในหนึ่งปี ใน บริษัท ของเราทีมเกือบทั้งหมดเป็นอิสระและมักจะไม่โต้ตอบเลย (ไม่ใช่แม้กระทั่งโดยใช้รหัสของกันและกัน - งานอยู่ในโครงการที่แตกต่างกันโดยสิ้นเชิง); ดังนั้น - …

4
การจัดการทรัพยากรที่ไม่ได้กำหนดไว้ว่าเป็นสิ่งที่เป็นนามธรรมหรือไม่?
จากสิ่งที่ฉันเห็นมีรูปแบบการจัดการทรัพยากรที่แพร่หลายอยู่สองรูปแบบคือการทำลายล้างที่กำหนดขึ้นและชัดเจน ตัวอย่างของอดีตจะเป็น destructors C ++ และตัวชี้สมาร์ทหรือย่อย DESTROY ของ Perl ในขณะที่ตัวอย่างหลังจะเป็นกระบวนทัศน์แบบบล็อกต่อการจัดการทรัพยากรของ Ruby หรืออินเทอร์เฟซ IDispose ของ. NET ภาษาที่ใหม่กว่าดูเหมือนจะเลือกใช้ในภายหลังซึ่งอาจเป็นผลข้างเคียงของการใช้ระบบรวบรวมขยะที่หลากหลายที่ไม่อ้างอิงการนับ คำถามของฉันคือ: เนื่องจาก destructors สำหรับสมาร์ทพอยน์เตอร์หรือระบบรวบรวมขยะอ้างอิง - เกือบจะเป็นสิ่งเดียวกัน - อนุญาตให้มีการทำลายทรัพยากรโดยปริยายและโปร่งใสมันเป็นสิ่งที่เป็นนามธรรมน้อยรั่วกว่าประเภทที่ไม่ได้กำหนดไว้ล่วงหน้า สัญกรณ์? ฉันจะยกตัวอย่างที่เป็นรูปธรรม หากคุณมีคลาสย่อย C ++ สามคลาสของซูเปอร์คลาสเดียวอาจมีการใช้งานที่ไม่ต้องการการทำลายที่เฉพาะเจาะจง บางทีมันอาจใช้เวทมนตร์ในอีกทางหนึ่ง ความจริงที่ว่ามันไม่ต้องการการทำลายพิเศษใด ๆ นั้นไม่เกี่ยวข้อง - คลาสย่อยทั้งหมดยังคงใช้ในลักษณะเดียวกัน ตัวอย่างอื่นใช้บล็อก Ruby คลาสย่อยสองคลาสจำเป็นต้องเพิ่มรีซอร์สดังนั้นคลาสคลาส opts สำหรับอินเตอร์เฟสที่ใช้บล็อกในตัวสร้างแม้ว่าคลาสย่อยย่อยอื่นอาจไม่ต้องการเนื่องจากมันไม่ต้องการการทำลายพิเศษ เป็นกรณีที่การรั่วไหลหลังรายละเอียดการใช้งานของการทำลายทรัพยากรในขณะที่อดีตไม่ได้หรือไม่ แก้ไข: การเปรียบเทียบสมมติว่า Ruby กับ Perl อาจมีความยุติธรรมมากกว่าเนื่องจากมีการทำลายล้างที่กำหนดและที่เหลือไม่ได้ แต่พวกเขาทั้งคู่เก็บขยะ

3
ตัวอย่าง Array ความยาวตัวแปร C ที่ดี [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว คำถามนี้ค่อนข้างได้รับการแช่แข็งที่ดังนั้นฉันจึงตัดสินใจลบที่นั่นและลองที่นี่แทน หากคุณคิดว่ามันไม่พอดีที่นี่อย่างน้อยโปรดแสดงความคิดเห็นเกี่ยวกับคำแนะนำวิธีการหาตัวอย่างฉันหลังจาก ... คุณสามารถยกตัวอย่างได้หรือไม่ว่าการใช้ C99 VLA ให้ประโยชน์ที่เหนือกว่าบางอย่างเช่นฮีปมาตรฐานที่ใช้กลไก C ++ RAII ปัจจุบันหรือไม่ ตัวอย่างหลังจากฉันควร: บรรลุข้อได้เปรียบด้านประสิทธิภาพที่วัดได้ง่าย (10%) จากการใช้ heap ไม่มีวิธีแก้ปัญหาที่ดีซึ่งไม่จำเป็นต้องใช้ทั้งชุดเลย ประโยชน์ที่แท้จริงจากการใช้ขนาดไดนามิกแทนที่จะเป็นขนาดสูงสุดคงที่ ไม่น่าจะทำให้เกิดการล้นสแต็คในสถานการณ์การใช้งานปกติ แข็งแรงพอที่จะล่อลวงนักพัฒนาที่ต้องการประสิทธิภาพในการรวมไฟล์ต้นฉบับ C99 ในโครงการ C ++ การเพิ่มความกระจ่างเกี่ยวกับบริบท: ฉันหมายถึง VLA ตามความหมายโดย C99 และไม่รวมอยู่ในมาตรฐาน C ++: int array[n]โดยที่nเป็นตัวแปร และฉันเป็นตัวอย่างของกรณีการใช้งานที่มันสำคัญกว่าทางเลือกอื่น ๆ ที่เสนอโดยมาตรฐานอื่น ๆ (C90, C ++ 11): int …
9 c++  c  stack  heap 

4
การจัดการหน่วยความจำสำหรับการส่งข้อความอย่างรวดเร็วระหว่างเธรดใน C ++
สมมติว่ามีสองเธรดซึ่งสื่อสารโดยการส่งข้อความข้อมูลแบบอะซิงโครนัสซึ่งกันและกัน แต่ละเธรดมีคิวข้อความบางประเภท คำถามของฉันอยู่ในระดับต่ำมาก: สิ่งที่คาดว่าจะเป็นวิธีที่มีประสิทธิภาพที่สุดในการจัดการหน่วยความจำ? ฉันสามารถคิดถึงวิธีแก้ปัญหาต่าง ๆ : newผู้ส่งสร้างวัตถุผ่าน deleteโทรผู้รับ Memory pooling (เพื่อโอนหน่วยความจำกลับไปยังผู้ส่ง) การรวบรวมขยะ (เช่น Boehm GC) (ถ้าวัตถุมีขนาดเล็กพอ) คัดลอกตามค่าเพื่อหลีกเลี่ยงการจัดสรรฮีปอย่างสมบูรณ์ 1) เป็นคำตอบที่ชัดเจนที่สุดดังนั้นฉันจะใช้มันสำหรับต้นแบบ มีโอกาสที่มันจะดีอยู่แล้ว แต่เป็นอิสระจากปัญหาเฉพาะของฉันฉันสงสัยว่าเทคนิคใดมีแนวโน้มมากที่สุดหากคุณกำลังปรับประสิทธิภาพการทำงานให้ดีที่สุด ฉันคาดหวังว่าการรวมกันจะดีที่สุดในทางทฤษฎีโดยเฉพาะอย่างยิ่งเพราะคุณสามารถใช้ความรู้เพิ่มเติมเกี่ยวกับการไหลของข้อมูลระหว่างเธรด อย่างไรก็ตามฉันกลัวว่ามันเป็นการยากที่จะทำถูกที่สุด การปรับแต่งมากมาย ... :-( การรวบรวมขยะควรเพิ่มได้อย่างง่ายดายหลังจากนั้น (หลังจากโซลูชันที่ 1) และฉันคาดว่ามันจะทำงานได้ดีมาก ดังนั้นฉันคิดว่ามันเป็นวิธีแก้ปัญหาที่ใช้งานได้จริงหาก 1) กลายเป็นว่าไม่มีประสิทธิภาพเกินไป หากวัตถุมีขนาดเล็กและเรียบง่ายการคัดลอกตามค่าอาจเร็วที่สุด อย่างไรก็ตามฉันกลัวว่ามันจะบังคับให้มีข้อ จำกัด ที่ไม่จำเป็นในการใช้งานข้อความที่รองรับดังนั้นฉันจึงต้องการหลีกเลี่ยง

5
ข้อยกเว้น“ ข้อผิดพลาดในการเขียนโปรแกรม” - แนวทางของฉันมีเสียงดีหรือไม่?
ขณะนี้ฉันพยายามปรับปรุงการใช้งานข้อยกเว้นและพบความแตกต่างที่สำคัญระหว่างข้อยกเว้นที่บ่งบอกถึงข้อผิดพลาดในการเขียนโปรแกรม (เช่นบางคนผ่านการพิสูจน์ว่าเป็นโมฆะหรือเรียกวิธีการบนวัตถุหลังจากถูกกำจัด) และสิ่งที่แสดงถึงความล้มเหลวใน การดำเนินการที่ไม่ใช่ความผิดของผู้โทร (เช่นข้อยกเว้น I / O) ข้อยกเว้นสองชนิดนี้ควรได้รับการปฏิบัติแตกต่างกันอย่างไร คุณคิดว่าต้องมีการบันทึกข้อผิดพลาดอย่างชัดเจนหรือไม่เพียงพอที่จะบันทึกปัจจัยที่เกี่ยวข้องหรือไม่ และคุณสามารถทิ้งเอกสารของเงื่อนไขเบื้องต้นหรือข้อผิดพลาดถ้ามันควรจะชัดเจน (ตัวอย่างเช่นObjectDisposedExceptionเมื่อเรียกวิธีการในวัตถุที่จำหน่าย)
9 java  c#  c++  exceptions 

6
ฉันจะได้รับประสบการณ์การเขียนโปรแกรมมากขึ้น [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา ฉันจะเป็นนักศึกษาวิทยาศาสตร์คอมพิวเตอร์ปีที่สามและฉันได้อ่าน Head first Java, Head First C และตอนนี้ฉันกำลังอ่าน C ++ ซึ่งเป็นภาษาที่ฉันชอบมากที่สุดเนื่องจากมีรูปแบบการสอนที่ดีสำหรับผู้ที่มีประสบการณ์ ฉันวางแผนที่จะเรียนรู้การทำซอฟต์แวร์ด้วย QT เรียนรู้เกี่ยวกับวัตถุประสงค์ -C (สำหรับ iphone) หรืออ่าน C ++ ที่มีประสิทธิภาพ ฉันจะได้รับประสบการณ์ในฐานะโปรแกรมเมอร์ได้อย่างไร ฉันมีทักษะในการเข้าร่วมโครงการโอเพนซอร์สหรือไม่หรือฉันจำเป็นต้องเรียนรู้ php, mySQL หรือภาษาอื่น ๆ ฉันรักการเขียนโปรแกรมและวิทยาศาสตร์คอมพิวเตอร์โดยทั่วไปถึงแม้ว่าบางห้องเรียนอาจยากมาก (วิทยาศาสตร์คอมพิวเตอร์เชิงทฤษฎี) ฉันวางแผนที่จะเป็นกูรูใน c ++ ด้วย แต่นั่นจะไม่เกิดขึ้นเร็ว ๆ นี้
9 c++  experience  qt 

4
กำลังวิเคราะห์การใช้หน่วยความจำ: Java vs C ++ เล็กน้อย
การใช้หน่วยความจำของวัตถุจำนวนเต็มที่เขียนใน Java เปรียบเทียบ \ contrast กับการใช้หน่วยความจำของวัตถุจำนวนเต็มที่เขียนใน C ++ อย่างไร ความแตกต่างเล็กน้อยหรือไม่ ไม่แตกต่าง? ความแตกต่างใหญ่? ฉันคาดเดาว่ามันเหมือนกันเพราะ int เป็น int โดยไม่คำนึงถึงภาษา (?) เหตุผลที่ฉันถามสิ่งนี้เพราะฉันกำลังอ่านเกี่ยวกับความสำคัญของการรู้ว่าข้อกำหนดหน่วยความจำของโปรแกรมเมื่อใดจะทำให้โปรแกรมเมอร์ไม่สามารถแก้ไขปัญหาที่กำหนดได้ สิ่งที่ทำให้ฉันหลงใหลคือจำนวนหน่วยความจำที่จำเป็นสำหรับการสร้างวัตถุ Java ชิ้นเดียว ยกตัวอย่างเช่นวัตถุจำนวนเต็ม แก้ไขให้ฉันถ้าฉันผิด แต่วัตถุจำนวนเต็ม Java ต้องการหน่วยความจำ 24 ไบต์: 4 ไบต์สำหรับตัวแปรอินสแตนซ์ของมัน 16 ไบต์ของค่าใช้จ่าย (อ้างอิงถึงคลาสของวัตถุข้อมูลการรวบรวมขยะ & ข้อมูลการซิงโครไนซ์) การซ้อน 4 ไบต์ เป็นอีกตัวอย่างหนึ่งอาร์เรย์ Java (ซึ่งถูกนำมาใช้เป็นวัตถุ) ต้องการ 48 + ไบต์: ข้อมูลส่วนหัว 24 ไบต์ ค่าใช้จ่ายของวัตถุ …

9
printf - แหล่งที่มาของข้อบกพร่อง? [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา ฉันใช้มากprintfสำหรับการติดตาม / การบันทึกในรหัสของฉันฉันพบว่ามันเป็นแหล่งที่มาของข้อผิดพลาดในการเขียนโปรแกรม ฉันมักจะพบตัวดำเนินการแทรก ( <<) ค่อนข้างแปลก แต่ฉันเริ่มคิดว่าการใช้มันแทนฉันสามารถหลีกเลี่ยงข้อบกพร่องบางอย่างเหล่านี้ได้ ใครเคยมีการเปิดเผยที่คล้ายกันหรือฉันแค่จับฟางที่นี่? บางจุดนำออกไป แนวความคิดปัจจุบันของฉันคือความปลอดภัยประเภทนั้นมีประโยชน์มากกว่าการใช้งาน printf ปัญหาที่แท้จริงคือสตริงรูปแบบและการใช้ฟังก์ชัน Variadic ที่ไม่ปลอดภัยต่อประเภท บางทีฉันอาจจะไม่ได้ใช้<<และตัวแปรสตรีมเอาต์พุต stl แต่แน่นอนฉันจะใช้กลไกการพิมพ์ที่ปลอดภัยซึ่งคล้ายกันมาก การติดตาม / การบันทึกจำนวนมากมีเงื่อนไข แต่ฉันต้องการเรียกใช้รหัสเพื่อไม่ให้พลาดข้อบกพร่องในการทดสอบเพียงเพราะมันเป็นสาขาที่ไม่ค่อยได้ใช้
9 c++ 

5
การมีไฟล์ส่วนหัว C ++ ที่ไม่มีส่วนขยายนั้นเป็นแนวปฏิบัติที่ดีหรือไม่?
ฉันมีข้อโต้แย้งกับเพื่อนร่วมงานของฉันเกี่ยวกับแนวทาง C ++ ที่ต้องปฏิบัติตาม ปัจจุบันเขาออกแบบห้องสมุดทั้งหมดของเขาด้วยวิธีนี้: เขาใช้ตัวอักษรตัวพิมพ์ใหญ่และตัวพิมพ์เล็กไม่ต่อเนื่องในชื่อไฟล์ของเขา ส่วนหัวบางส่วนของเขาไม่มีส่วนขยายใด ๆ ฉันเชื่อว่าการไม่มีส่วนขยายเป็นสิ่งที่สงวนไว้สำหรับไฟล์มาตรฐาน C ++ และการใช้ตัวอักษรตัวพิมพ์ใหญ่นั้นเกิดข้อผิดพลาดได้ง่าย (โดยเฉพาะอย่างยิ่งเมื่อคุณจัดการกับรหัสซึ่งมีความหมายว่าจะทำงานกับทั้ง Windows และ Linux) ประเด็นของเขาคือเขาปฏิบัติตามQtอนุสัญญา (แม้แต่รหัสที่ไม่ได้ใช้ Qt) และพูดว่า: "ถ้า Qt ทำอย่างนั้นมันก็ไม่เลวเลย" ตอนนี้ฉันพยายามเปิดใจ แต่ฉันรู้สึกแย่จริง ๆ เมื่อฉันต้องทำงานกับห้องสมุดของเขา มีกฎทั่วไปที่กำหนดขึ้นเกี่ยวกับเรื่องนี้หรือไม่? มาตรฐานบอกอะไรเกี่ยวกับมันบ้างไหม? ขอบคุณมาก.
9 c++  naming 

3
ตัวจัดสรรฮีปแบบกำหนดเอง
โปรแกรมส่วนใหญ่ค่อนข้างไม่เป็นทางการเกี่ยวกับการจัดสรรฮีปแม้ภาษาที่ใช้งานโปรแกรมต้องการจัดสรรออบเจ็กต์ใหม่มากกว่าการดัดแปลงฮีทเก่าและปล่อยให้ผู้รวบรวมขยะกังวลเกี่ยวกับการปลดปล่อยสิ่งต่าง ๆ ในการเขียนโปรแกรมฝังตัวเซกเตอร์แบบเงียบอย่างไรก็ตามมีหลายแอปพลิเคชันที่คุณไม่สามารถใช้การจัดสรรฮีปได้ทั้งหมดเนื่องจากหน่วยความจำและข้อ จำกัด แบบเรียลไทม์ จำนวนวัตถุของแต่ละประเภทที่จะจัดการเป็นส่วนหนึ่งของข้อมูลจำเพาะและทุกอย่างได้รับการจัดสรรแบบคงที่ การเขียนโปรแกรมเกม (อย่างน้อยกับเกมที่มีความทะเยอทะยานเกี่ยวกับการผลักฮาร์ดแวร์) บางครั้งก็อยู่ระหว่าง: คุณสามารถใช้การจัดสรรแบบไดนามิก แต่มีหน่วยความจำเพียงพอและมีข้อ จำกัด แบบเรียลไทม์อ่อนที่คุณไม่สามารถถือว่าตัวจัดสรรเป็นกล่องดำ ให้ใช้การรวบรวมขยะอย่างเดียวดังนั้นคุณต้องใช้ตัวจัดสรรแบบกำหนดเอง นี่คือหนึ่งในเหตุผลที่ C ++ ยังคงใช้กันอย่างแพร่หลายในอุตสาหกรรมเกม มันช่วยให้คุณทำสิ่งต่าง ๆ เช่นhttp://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2271.html มีโดเมนอื่นใดบ้างที่อยู่ระหว่างนั้น? นอกเหนือจากเกมแล้วมีการใช้ตัวจัดสรรแบบกำหนดเองอย่างหนักที่ไหน?

4
ฉันจะปรับปรุง C ++ ให้ทันสมัยด้วยการพัฒนาที่ทันสมัยได้อย่างไร [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน4 ปีที่แล้ว ฉันจะทำให้ C ++ เป็นสนิมขึ้นมาได้อย่างไรเพราะฉันแน่ใจว่าภาษาและแนวทางปฏิบัติที่ดีที่สุดได้พัฒนาไปแล้ว? ฉันรู้ว่านี่อาจใกล้เคียงกับการปิดหัวข้อดังนั้นให้ฉันชี้แจงรายละเอียดบางอย่าง ประมาณ 10 ปีที่แล้วฉันคิดว่าฉันเป็นโปรแกรมเมอร์ C ++ ที่ดีฉันจะกินหนังสือ Scott Meyers ฉันสามารถไขปริศนาในโฆษณาผ้าสำลีใน Dr. Dobbs ได้ ฉันอาจเป็นทนายความด้านภาษา ฉันเขียนโปรแกรมเป็นจาวาส่วนใหญ่เป็นงูหลามในช่วง 10 ปีที่ผ่านมาดังนั้นทักษะ OO ของฉันจึงยังคงเป็นที่น่าสนใจ แต่การเข้าร่วม บริษัท ที่ C ++ เป็นเรื่องธรรมดาฉันก็รู้ว่าฉันต้องยอมรับกับตัวเองว่าฉันทั้งสองเป็นสนิมจริงๆและมีคุณสมบัติทางภาษาซึ่งตอนนี้เป็นภาษาใหม่หรือใหม่กว่าที่ฉันจำได้ - สิ่งต่าง ๆ เช่น namespaces เป็นต้น ฉันรู้ว่าการอ่านและการเขียนโค้ด (โดยเฉพาะการจับคู่) เป็นวิธีที่ดีในการเพิ่มความเร็ว แต่มีทรัพยากรอื่น …

2
Build automation: ปกติแล้วจะใช้ QMake สำหรับโครงการที่ไม่ใช่ Qt หรือไม่?
ดังนั้นฉันวางแผนที่จะเขียนไลบรารี C ++ และฉันต้องการให้เป็นข้ามแพลตฟอร์มและเนื่องจากไลบรารีนี้จะไม่จัดการกับ UI และฉันต้องการให้มีการพึ่งพาน้อยที่สุดเท่าที่จะทำได้ฉันจะไม่ใช้ Qt (ที่จริงแล้ว Qt จะไม่ช่วยฉันให้บรรลุสิ่งที่ฉันต้องการจริง ๆ ทั้งหมดที่ฉันวางแผนไว้คือ STL และ Boost) ตอนนี้เมื่อมันมาถึงการสร้างโครงการข้ามแพลตฟอร์มฉันชอบ QMake จริงๆเพราะมันใช้งานง่ายมากและฉันมีประสบการณ์กับมัน ฉันได้ยินสิ่งดีๆเกี่ยวกับ CMake ด้วยเช่นกัน แต่ฉันสงสัยว่าจริงๆแล้วมันใช้งานง่ายเหมือน QMake อย่างไรก็ตามนี่คือคำถามของฉัน: ฉันควรติดกับเครื่องมือสร้างอัตโนมัติที่ฉันรู้หรือ QMake ออกจากบริบทสำหรับโครงการที่ไม่ใช่ Qt หรือไม่? ฉันควรใช้โอกาสนี้ในการเรียนรู้ CMake หรือไม่ หรือมีทางเลือกที่ดีกว่าสำหรับสองคนนี้หรือไม่?
9 c++  cmake 

3
การสร้าง web-end สำหรับโปรแกรม C ++
ฉันสงสัยว่าอะไรจะเป็นวิธีที่ดีที่สุดในการสร้างเว็บสำหรับเชื่อมต่อกับโปรแกรม C ++ บนเซิร์ฟเวอร์ ตอนแรกฉันคิดว่าเพียงแค่ใช้การทำงานของเชลล์จากภาษาฝั่งเซิร์ฟเวอร์ (เช่นshell_exec()ใน PHP) แต่ฉันสงสัยว่ามีวิธีที่ "ดีกว่า" อาจมีบางสิ่งที่มีถิ่นกำเนิดมากกว่าหรือนี่เป็นการฝึกฝนที่ไม่ดีด้วยเหตุผลบางอย่าง?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.