ประวัติความเป็นมาของภาษาโปรแกรม C++ ย้อนกลับไปใน ปี 1979 เมื่อ Bjarne Stroustrup รับหน้าที่พัฒนาวิทยานิพนธ์ระดับปริญญาเอกของเขา ในบรรดาภาษาทั้งหมดที่ Stroustrup สามารถใช้ได้ มีอยู่ภาษาหนึ่งที่เรียกว่า Simula ซึ่งตามชื่อเลยอาจเป็นภาษาที่ออกแบบมาเพื่อการจำลองเป็นหลัก ภาษา Simula 67 เป็นอีกภาษาหนึ่งที่ Stroustrup ใช้ และถือเป็นภาษาหลักที่สนับสนุนกระบวนทัศน์การเขียนโปรแกรมเชิงวัตถุ Stroustrup พบว่ากระบวนทัศน์นี้มีประโยชน์ในการพัฒนาบรรจุภัณฑ์ อย่างไรก็ตาม ภาษา Simula นั้นช้าเกินไปสำหรับการใช้งานจริงและในทางปฏิบัติ หลังจากนั้นไม่นาน Bjarne Stroustrup ต้องการปรับปรุงภาษา C โดยการสนับสนุนกระบวนทัศน์เชิงวัตถุ เขาเจาะลึกการใช้งาน OO ของ Smalltalk เพื่อรับแนวคิดในการนำไปปฏิบัติ แต่เขาก็ไม่เต็มใจที่จะละทิ้งประสิทธิภาพสำหรับสิ่งนี้ ดังนั้นเขาจึงเริ่มทำงานกับ "C with Classes (C with classes)" โดยหวังว่าโค้ด C++ ควรมีประสิทธิภาพใกล้เคียงกัน (หรือดีกว่า) กับโค้ด C เมื่อทำงาน
ในปี 1983 ชื่อของภาษาได้เปลี่ยนจาก "C with Classes" เป็น C++ ตัวดำเนินการ ++ ใน C คือตัวดำเนินการที่ใช้ในการเพิ่มตัวแปร ซึ่งจะช่วยให้คุณเข้าใจถึงวิธีที่ Stroustrup มองภาษา คุณลักษณะใหม่ๆ มากมายถูกเพิ่มเข้ามาในช่วงเวลานี้ สิ่งที่น่าสังเกตมากที่สุดคือฟังก์ชันเสมือน ฟังก์ชันโอเวอร์โหลด การอ้างอิงด้วยเครื่องหมายแอมเปอร์แซนด์ คำสำคัญ const และความคิดเห็นบรรทัดเดียวโดยใช้เครื่องหมายทับสองตัว
ในปี 1985 Stroustrup ได้ตีพิมพ์หนังสือชื่อ "The C++ Programming Language" ในปีเดียวกันนั้น C++ ได้ถูกนำมาใช้เป็นผลิตภัณฑ์เชิงพาณิชย์ ภาษาไม่ได้รับการกำหนดมาตรฐานอย่างเป็นทางการ ทำให้หนังสือเล่มนี้เป็นข้อมูลอ้างอิงที่สำคัญมาก ภาษาได้รับการอัปเดตอีกครั้งในปี 1989 เพื่อรวมสมาชิกที่ได้รับการป้องกันและสมาชิกคงที่ รวมถึงการสืบทอดจากหลายคลาส
ในปี 1990 คู่มืออ้างอิง C++ ที่มีคำอธิบายประกอบได้รับการเผยแพร่ ในปีเดียวกันนั้น คอมไพเลอร์ Turbo C++ ของ Borland จะได้รับการปล่อยตัวเป็นผลิตภัณฑ์เชิงพาณิชย์ Turbo C++ เพิ่มไลบรารีอื่นๆ มากมายที่อาจมีผลกระทบอย่างมากต่อการพัฒนา C++ แม้ว่า Turbo C++ เวอร์ชันเสถียรล่าสุดคือในปี 2549 แต่คอมไพเลอร์ยังคงใช้กันอย่างแพร่หลาย
ในปี 1998 คณะกรรมการมาตรฐาน C++ ได้เผยแพร่มาตรฐานสากล ISO/IEC 14882:1998 ของ C++ ฉบับแรก หรือที่รู้จักอย่างไม่เป็นทางการในชื่อ C++98 ว่ากันว่า "คู่มืออ้างอิง C++ ที่มีคำอธิบายประกอบ" มีอิทธิพลอย่างมากต่อการกำหนดมาตรฐาน รวมทั้งยังมี Standard Template Library ซึ่งการพัฒนาแนวคิดเริ่มขึ้นในปี 1979 ในปี พ.ศ. 2546 คณะกรรมการได้ตอบสนองต่อประเด็นต่างๆ ที่รายงานไว้ในมาตรฐาน พ.ศ. 2541 และปรับปรุงแก้ไขให้สอดคล้องกัน ภาษาที่เปลี่ยนเรียกว่า C++03
ในปี พ.ศ. 2548 คณะกรรมการมาตรฐาน C++ ได้เผยแพร่รายงานทางเทคนิค (เรียกว่า TR1) ซึ่งมีรายละเอียดคุณลักษณะต่างๆ ที่พวกเขาวางแผนจะเพิ่มลงในมาตรฐาน C++ ล่าสุด มาตรฐานใหม่นี้เรียกอย่างไม่เป็นทางการว่า C++0x เนื่องจากคาดว่าจะเปิดตัวก่อนสิ้นทศวรรษแรก น่าแปลกที่มาตรฐานใหม่จะไม่ออกจนกว่าจะถึงกลางปี 2554 จนถึงจุดนั้น มีการเผยแพร่รายงานทางเทคนิคหลายฉบับ และคอมไพเลอร์บางส่วนได้เริ่มเพิ่มการสนับสนุนการทดลองสำหรับคุณสมบัติใหม่
ในกลางปี 2554 มาตรฐาน C++ ใหม่ (เรียกว่า C++11) เสร็จสมบูรณ์ โครงการไลบรารี Boost มีผลกระทบอย่างมากต่อมาตรฐานใหม่ โดยโมดูลใหม่บางส่วนจะมาจากไลบรารี Boost ที่เกี่ยวข้องโดยตรง คุณสมบัติใหม่บางอย่าง ได้แก่ การรองรับนิพจน์ทั่วไป, ไลบรารีการสุ่มแบบครอบคลุม, ไลบรารีการกำหนดเวลา C++ ใหม่, การสนับสนุนอะตอมมิก, ไลบรารีเธรดมาตรฐาน, ไวยากรณ์ for loop ใหม่ที่มีฟังก์ชันการทำงานคล้ายกับ foreach loop ในภาษาอื่นบางภาษา, คำสำคัญอัตโนมัติ, ใหม่ คลาสคอนเทนเนอร์ การสนับสนุนที่ดีกว่าสำหรับรายการตัวเริ่มต้นแบบยูเนี่ยนและอาร์เรย์ และเทมเพลตที่หลากหลาย
ในปี 2014 C++ 14 (หรือที่เรียกว่า C++ 1y) ได้รับการเผยแพร่เป็นส่วนขยายเล็กๆ ของ C++11 ฟังก์ชันหลักคือการแก้ไขข้อบกพร่องและการปรับปรุงเล็กน้อย ขั้นตอนการลงคะแนนเสียงมาตรฐานสากลฉบับร่างเสร็จสมบูรณ์ในช่วงกลางเดือนสิงหาคม 2014 เพื่อเสริมความแข็งแกร่งให้กับระบบ ฟังก์ชันแลมบ์ดา constexpr และคุณสมบัติการอนุมานประเภท
ในปี 2560 มาตรฐาน C17 เปิดตัวแล้ว การปรับปรุงภาษาหลักและไลบรารี
ในปี 2020 มาตรฐาน C++20 ได้รับการเผยแพร่ โดยเปิดตัวฟีเจอร์รุ่นเฮฟวี่เวทมากมาย โดยที่สำคัญกว่านั้นคือ:
แนวคิด: แนวคิดเปลี่ยนวิธีคิดและเทมเพลตโปรแกรม เป็นหมวดหมู่ความหมายของพารามิเตอร์เทมเพลต ช่วยให้คุณสามารถแสดงเจตนาของคุณโดยตรงในระบบประเภท หากมีสิ่งผิดปกติเกิดขึ้น คุณจะได้รับข้อความแสดงข้อผิดพลาดที่ชัดเจน
ไลบรารี Ranges: ไลบรารี Ranges ใหม่ทำให้สามารถรันอัลกอริธึมได้โดยตรงบนคอนเทนเนอร์ เขียนด้วยสัญลักษณ์ไปป์ และนำไปใช้กับสตรีมข้อมูลที่ไม่มีที่สิ้นสุด
Coroutines: การเขียนโปรแกรมแบบอะซิงโครนัสใน C ++ กลายเป็นกระแสหลักด้วย coroutines Coroutines เป็นพื้นฐานสำหรับงานการทำงานร่วมกัน ลูปเหตุการณ์ สตรีมข้อมูลหรือไปป์ไลน์ที่ไม่มีที่สิ้นสุด
โมดูล: โมดูลเอาชนะข้อจำกัดของไฟล์ส่วนหัว การแยกไฟล์ส่วนหัวและไฟล์ต้นฉบับล้าสมัยเหมือนกับตัวประมวลผลล่วงหน้า สุดท้ายนี้ เรามีเวลาในการสร้างที่เร็วขึ้นและวิธีที่ง่ายกว่าในการสร้างแพ็คเกจ
การทำงานพร้อมกัน: Atomic Smart Pointers, การเข้าร่วมและการยกเลิกเธรด, ไลบรารีการซิงโครไนซ์ C20 ซึ่งเพิ่มความสามารถในการเขียนโปรแกรมพร้อมกันด้วย C++
กวดวิชา C++
รู้เบื้องต้นเกี่ยวกับ C ++
การตั้งค่าสภาพแวดล้อม C++
ไวยากรณ์พื้นฐาน C++
ความคิดเห็น C ++
ชนิดข้อมูล C++
ประเภทตัวแปร C++
ขอบเขตตัวแปร C++
ค่าคงที่ C++
ประเภทตัวแก้ไข C++
คลาสหน่วยเก็บข้อมูล C++
ตัวดำเนินการ C++
ลูป C++
การตัดสิน C ++
ฟังก์ชัน C++
ตัวเลข C++
อาร์เรย์ C++
สตริง C++
พอยน์เตอร์ C++
การอ้างอิง C ++
C++ วันที่และเวลา
อินพุตและเอาต์พุตพื้นฐาน C++
โครงสร้างข้อมูล C++
คลาสและอ็อบเจ็กต์ C++
มรดก C++
ตัวดำเนินการโอเวอร์โหลด C++ และฟังก์ชันโอเวอร์โหลด
ความหลากหลาย C++
นามธรรมข้อมูล C++
การห่อหุ้มข้อมูล C++
อินเทอร์เฟซ C++ (คลาสนามธรรม)
ไฟล์และสตรีม C++
การจัดการข้อยกเว้น C ++
หน่วยความจำแบบไดนามิก C++
เนมสเปซ C++
เทมเพลต C++
ตัวประมวลผลล่วงหน้า C++
การประมวลผลสัญญาณ C++
C++ มัลติเธรด
การเขียนโปรแกรมเว็บ C++
บทช่วยสอน C ++ STL
ไลบรารีมาตรฐาน C++
1. ความรู้พื้นฐาน
8.1 แนวคิดพื้นฐานของโครงสร้าง
8.2 นิยามโครงสร้างและการใช้งาน
8.3 โครงสร้างอาเรย์
8.4 ตัวชี้โครงสร้าง
8.5 โครงสร้าง โครงสร้างแบบซ้อน
8.6 โครงสร้างเป็นพารามิเตอร์ฟังก์ชัน
8.7 สถานการณ์การใช้งาน Const ในโครงสร้าง
7.1 แนวคิดพื้นฐานของพอยน์เตอร์
7.2 ความหมายและการใช้ตัวแปรพอยน์เตอร์
7.3 พื้นที่หน่วยความจำที่ถูกครอบครองโดยพอยน์เตอร์
7.4 พอยน์เตอร์แบบ Null และพอยน์เตอร์แบบไวด์
7.5 const ตัวชี้ที่ปรับเปลี่ยน
7.6 พอยน์เตอร์และอาร์เรย์
7.7 พอยน์เตอร์และฟังก์ชัน
7.8 พอยน์เตอร์ อาร์เรย์ ฟังก์ชัน
1. คำสั่ง goto (ไม่แนะนำ)
2. อาร์เรย์หนึ่งมิติ
3. อาร์เรย์สองมิติ
4. การถ่ายโอนค่าในฟังก์ชัน
5. ประกาศฟังก์ชัน
6. ฟังก์ชั่นการเขียนเป็นไฟล์แยกกัน
7. ตัวชี้
8. โครงสร้าง
2. การเขียนโปรแกรมหลัก
3.1 พารามิเตอร์เริ่มต้นของฟังก์ชัน
3.2 พารามิเตอร์ตำแหน่งฟังก์ชัน
3.3 ฟังก์ชั่นโอเวอร์โหลด
2.1 การใช้ข้อมูลอ้างอิงขั้นพื้นฐาน
2.2 หมายเหตุเกี่ยวกับการอ้างอิง
2.3 อ้างอิงเป็นพารามิเตอร์ฟังก์ชัน
2.4 การอ้างอิงเป็นค่าส่งคืนฟังก์ชัน
2.5 ลักษณะของการอ้างอิง
2.6 การอ้างอิงคงที่
1.1 ก่อนรันโปรแกรม
1.2 หลังจากรันโปรแกรมแล้ว
1.3 โอเปอเรเตอร์ใหม่
1. โมเดลพาร์ติชั่นหน่วยความจำ
2. อ้างอิง
3. ฟังก์ชั่น
"ความเข้าใจเชิงลึกของ C++11: การวิเคราะห์และการประยุกต์ใช้คุณสมบัติใหม่ของ C++11"
"C++ Introductory Classic (ฉบับที่ 10)"
"C++ Primer Plus เวอร์ชันภาษาจีนรุ่นที่ 6 (ผลิตโดย Asynchronous Books)"
"ซีรีส์การแปลหนังสือคอมพิวเตอร์ Tsinghua: Mastering C++ (ฉบับที่ 9)"
"การเขียนโปรแกรมขั้นสูงใน C++ (ฉบับที่ 4)"
"ความรู้เบื้องต้นเกี่ยวกับการเขียนโปรแกรมเกม C++ (ฉบับที่ 4) (ผลิตโดย Asynchronous Books)"
"การวิเคราะห์ซอร์สโค้ด STL"
"การเขียนโปรแกรม C++: หลักการและการปฏิบัติ (พื้นฐาน) (หนังสือต้นฉบับ ฉบับพิมพ์ครั้งที่ 2)"
"เวอร์ชันภาษาจีน C++ แบบเร่ง"
"ความคิดในการเขียนโปรแกรม C++ (สองเล่ม)"
"STL ที่มีประสิทธิภาพเวอร์ชันภาษาจีน: 50 ประสบการณ์ในการใช้ STL อย่างมีประสิทธิภาพ"
"กายวิภาคของการเขียนโปรแกรม C++: ปัญหา วิธีแก้ไข และแนวทางการออกแบบ"
"เทมเพลต C++ เวอร์ชันภาษาจีน"
"การคิดใหม่ในการออกแบบ C++"
"การเขียนโปรแกรมเมตาเทมเพลต C ++"
"การฝึกเขียนโปรแกรมพร้อมกัน C++"
"ภาษาการเขียนโปรแกรม C++ (ตอนที่ 1-3) (ต้นฉบับเล่ม 4)"
"ไลบรารีมาตรฐาน C++ (ฉบับที่ 2)"
"ที่จำเป็น C ++"
"การออกแบบและวิวัฒนาการของภาษา C++"
"การสำรวจเชิงลึกของโมเดลวัตถุ C++"
"การเขียนโปรแกรมทั่วไปและ STL"
10 ฟีเจอร์ C++11 ที่นักพัฒนา C++ ทุกคนควรใช้
15 คุณสมบัติ C++11 ที่คุณต้องใช้จริงในโปรเจ็กต์ C++ ของคุณ
วิธีใช้นิพจน์แลมบ์ดาใน C ++ 11
ความเข้าใจอย่างลึกซึ้งเกี่ยวกับ C ++ 11
การเรียงลำดับการอาเจียนในเลือด: คุณสมบัติใหม่ของ C ++ 11
คุณสมบัติใหม่ของ C ++ 11 คะแนนความรู้อัตโนมัติและประเภท decltype
คุณสมบัติใหม่ของ C ++ 11: การอ้างอิงค่า lvalue, การอ้างอิงค่า r, ความหมายการย้าย, การส่งต่อที่สมบูรณ์แบบ
การเริ่มต้นรายการคุณสมบัติใหม่ C ++ 11
คุณสมบัติใหม่ของ C ++ 11 std :: function และนิพจน์แลมบ์ดา
คุณสมบัติใหม่ C ++ 11: การปรับปรุงเทมเพลต
คุณสมบัติใหม่ของ C++11 และจุดความรู้ที่เกี่ยวข้องกับเธรด
คุณสมบัติใหม่ของ C ++ 11 การดำเนินการแบบอะซิงโครนัส-async
คุณสมบัติใหม่ของ C ++ 11 ตัวชี้อัจฉริยะ
คุณสมบัติใหม่ทั่วไปของ C ++ 11 (1)
คุณสมบัติใหม่ทั่วไปของ C ++ 11 (2)
การอภิปรายสั้น ๆ เกี่ยวกับคุณสมบัติใหม่ของ C ++ 14
ประเด็นความรู้ทั้งหมดเกี่ยวกับคุณสมบัติใหม่ของ C++14 อยู่ที่นี่
สรุป: คุณสมบัติใหม่ของ C ++ 17
คุณสมบัติภาษา C ++ 20
P1 ความรู้เบื้องต้นเกี่ยวกับการเขียนโปรแกรม C++
ไฟล์ส่วนหัว P2 และการประกาศคลาส
ตัวสร้าง P3
การถ่ายโอนพารามิเตอร์ P4 และค่าส่งคืน
ตัวดำเนินการ P5 โอเวอร์โหลดและวัตถุชั่วคราว
P6 ทบทวนกระบวนการดำเนินการของคลาส Complex
P7 หน้าที่หลักสามประการ: การสร้างสำเนา การจำลองแบบสำเนา และการทำลาย
P8 การจัดการฮีป สแต็ก และหน่วยความจำ
P9 ตรวจสอบกระบวนการใช้งานของคลาส String
ส่วนขยาย P10: เทมเพลตคลาส เทมเพลตฟังก์ชัน และอื่นๆ
P11 องค์ประกอบและการสืบทอด
P13 การออกแบบที่เกี่ยวข้องกับค่าคอมมิชชัน
หน้า 14 1 บทนำ
ฟังก์ชั่นการแปลง P15 2
P16 3 ตัวสร้างอาร์กิวเมนต์ตัวเดียวที่ไม่ชัดเจน
P17 4 พอยน์เตอร์เหมือนคลาส
P18 5 ฟังก์ชั่นเหมือนคลาส
P19 6 การอภิปรายประสบการณ์เนมสเปซ
เทมเพลตคลาส P20 7
P21 8 เทมเพลตฟังก์ชัน
P22 9 เทมเพลตสมาชิก
P23 10 ความเชี่ยวชาญ
P24 11 ความเชี่ยวชาญเฉพาะด้านเทมเพลต
P25 12 พารามิเตอร์เทมเพลตเทมเพลต
P26 13 เกี่ยวกับไลบรารีมาตรฐาน C++
หน้า 27 14 สามธีม
P28 15 ข้อมูลอ้างอิง
P29 16 การก่อสร้างและการทำลายภายใต้ความสัมพันธ์แบบคอมโพสิตและมรดก
P30 17 เกี่ยวกับ vptr และ vtbl
หน้า 31 18 เกี่ยวกับเรื่องนี้
P32 19 0 เกี่ยวกับการเชื่อมโยงแบบไดนามิก
P33 19 1 เกี่ยวกับการเชื่อมโยงแบบไดนามิก
P34 20 เกี่ยวกับใหม่ลบ
P35 21 โอเปอเรเตอร์ใหม่ ลบโอเปอเรเตอร์
หน้า 36 22 ตัวอย่าง
P37 23 การโอเวอร์โหลดใหม่ลบตัวอย่าง $
P38 24 Basic String ใช้ newextra เพื่อขยายปริมาณแอปพลิเคชัน
ไลบรารีมาตรฐาน C++ - ชุดของคลาสและฟังก์ชันที่เขียนด้วยภาษาหลักและเป็นส่วนหนึ่งของมาตรฐาน ISO ของ C++
ไลบรารีเทมเพลตมาตรฐาน - ไลบรารีเทมเพลตมาตรฐาน
ไลบรารี C POSIX - ข้อกำหนดไลบรารีมาตรฐาน C สำหรับระบบ POSIX
คณะกรรมการมาตรฐาน ISO C++ - คณะกรรมการมาตรฐาน C++
คำถามที่พบบ่อยเกี่ยวกับ C++ - คำถามที่พบบ่อยเกี่ยวกับ C++
Free Country - Free Country มอบซอร์สโค้ด C++ และไลบรารี C++ ฟรีที่ครอบคลุมฟิลด์การเขียนโปรแกรม C++ เช่น การบีบอัด การเก็บถาวร การเขียนโปรแกรมเกม ไลบรารีเทมเพลตมาตรฐาน และการเขียนโปรแกรม GUI
กลุ่มผู้ใช้ C และ C++ − กลุ่มผู้ใช้ C และ C++ มอบซอร์สโค้ดฟรีสำหรับโครงการ C++ ครอบคลุมสาขาการเขียนโปรแกรมต่างๆ รวมถึง AI, แอนิเมชัน, คอมไพเลอร์, ฐานข้อมูล, การดีบัก, การเข้ารหัส, เกม, กราฟิก, GUI, เครื่องมือภาษา, การเขียนโปรแกรมระบบ ฯลฯ .
LearnCpp - เรียนรู้การเขียนโปรแกรม c++ ฟรี
CodeCogs - CodeCogs เป็นไลบรารีโอเพ่นซอร์สที่ทำงานร่วมกันของส่วนประกอบตัวเลขสำหรับ C/C++
codeproject - โปรเจ็กต์โค้ดทรัพยากร C/C++ ที่จัดทำโดย codeproject
thoughtco - ซอร์สโค้ด C ++ ที่เกี่ยวข้องกับเกม
ไลบรารี C/C++ ฟรี - ซอร์สโค้ด C++ ฟรีและเครื่องมือที่มีประโยชน์อื่นๆ
ไลบรารีมาตรฐาน C++ - นี่คือเว็บเพจที่รวบรวมรายการลิงก์ไปยังเว็บไซต์ C/C++ หลายแห่ง
cplusplus - เว็บไซต์การเรียนรู้ C++
ซอร์สโค้ด C++ - นี่คือรายการซอร์สโค้ด 345 รายการที่ครอบคลุมสำหรับ C++
Apache C++ Standard Library: คือชุดของอัลกอริทึม คอนเทนเนอร์ ตัววนซ้ำ และส่วนประกอบพื้นฐานอื่นๆ
ASL: ไลบรารีซอร์สโค้ดของ Adobe มีไลบรารีซอร์สโค้ด C++ ที่ผ่านการตรวจสอบโดยผู้ทรงคุณวุฒิและพกพาได้
Boost: ชุดไลบรารี C++ สำหรับใช้งานทั่วไปจำนวนมาก
BDE: สภาพแวดล้อมการพัฒนาจาก Bloomberg Intelligence Labs
Cinder: ชุมชนการพัฒนาโอเพ่นซอร์สที่ให้บริการการเขียนโค้ดเชิงสร้างสรรค์คุณภาพระดับมืออาชีพ
Bxxomfort: ไลบรารี่แบบส่วนหัวเท่านั้นน้ำหนักเบาที่พอร์ตคุณสมบัติใหม่บางอย่างของ C++11 ถึง C++03
Dlib: ไลบรารี C++ ข้ามแพลตฟอร์มสากลที่ออกแบบโดยใช้การเขียนโปรแกรมตามสัญญาและเทคโนโลยี C++ สมัยใหม่
EASTL: ส่วนสาธารณะ EA-STL
ffead-cpp: เฟรมเวิร์กการพัฒนาแอปพลิเคชันระดับองค์กร
Folly: ไลบรารี C++ โอเพ่นซอร์สที่พัฒนาและใช้งานโดย Facebook
JUCE: ไลบรารี C++ ที่ครอบคลุมสำหรับการพัฒนาซอฟต์แวร์ข้ามแพลตฟอร์ม
libphenom: เฟรมเวิร์กเหตุการณ์สำหรับการสร้างระบบประสิทธิภาพสูงและปรับขนาดได้สูง
LibSourcey: C++11 จัดกิจกรรม IO สำหรับการสตรีมวิดีโอแบบเรียลไทม์และแอปพลิเคชันเครือข่ายประสิทธิภาพสูง
โลกิ: การออกแบบไลบรารี C++ รวมถึงการใช้รูปแบบการออกแบบและสำนวนทั่วไป
MiLi: ไลบรารี C++ ส่วนหัวขนาดเล็กเท่านั้น
openFrameworks: พัฒนาชุดเครื่องมือ C++ สำหรับการเขียนโค้ดเชิงสร้างสรรค์
Qt: แอปพลิเคชันข้ามแพลตฟอร์มและเฟรมเวิร์กส่วนต่อประสานกับผู้ใช้
เหตุผล: เฟรมเวิร์กข้ามแพลตฟอร์มที่ช่วยให้นักพัฒนาใช้ Java, .Net และ Python ได้ง่ายขึ้น ในขณะเดียวกันก็สนองความต้องการด้านประสิทธิภาพและข้อดีของ C++ อีกด้วย
ROOT: ชุดของเฟรมเวิร์กเชิงวัตถุพร้อมฟังก์ชันทั้งหมดในการประมวลผลและวิเคราะห์ข้อมูลจำนวนมากอย่างมีประสิทธิภาพมาก ซึ่งใช้โดย CERN
STLport: เป็นเวอร์ชันตัวแทนของ STL
STXXL: ไลบรารีเทมเพลตมาตรฐานสำหรับชุดข้อมูลขนาดใหญ่เพิ่มเติม
Ultimate++: เฟรมเวิร์กการพัฒนาแอปพลิเคชันที่รวดเร็วข้ามแพลตฟอร์ม C++
ไลบรารีเทมเพลต Windows : ไลบรารี C++ สำหรับการพัฒนาแอปพลิเคชัน Windows และส่วนประกอบ UI
Yomm11: เปิดหลายวิธีสำหรับ C ++ 11
Boost.Asio: ไลบรารี C++ ข้ามแพลตฟอร์มสำหรับเครือข่ายและการเขียนโปรแกรม I/O ระดับต่ำ
libev: ไทม์ลูปประสิทธิภาพสูงและมีคุณสมบัติครบถ้วน สร้างแบบจำลองเล็กน้อยตาม libevent แต่ไม่มีข้อจำกัดเช่นเดียวกับ libevent อีกต่อไป และข้อบกพร่องบางอย่างได้รับการแก้ไขแล้ว
libevent: ไลบรารีการแจ้งเตือนเหตุการณ์
libuv: I/O แบบอะซิงโครนัสข้ามแพลตฟอร์ม
libco: coroutine ไลบรารี IO พื้นฐานของ WeChat ที่รองรับผู้ใช้ออนไลน์ 800 ล้านคนในเวลาเดียวกัน ทรงพลัง
libgo: เฟรมเวิร์กการทำงานพร้อมกันแบบ Golang, ไลบรารี Coroutine การนำ C++11 ไปใช้
ACE: ชุดเครื่องมือเครือข่ายเชิงวัตถุ C ++
คาซาบลังกา: C++ REST SDK
cpp-netlib: ชุดของไลบรารีโอเพ่นซอร์สสำหรับการเขียนโปรแกรมเครือข่ายขั้นสูง
libCurl: ไลบรารีการถ่ายโอนไฟล์หลายโปรโตคอล
Mongoose: เว็บเซิร์ฟเวอร์ที่มีน้ำหนักเบามาก
Muduo: ไลบรารีเครือข่าย C++ ที่ไม่ปิดกั้นสำหรับเซิร์ฟเวอร์แบบมัลติเธรด Linux
net_skeleton: ไลบรารีไคลเอ็นต์/เซิร์ฟเวอร์ TCP สำหรับ C/C++
POCO: ไลบรารีคลาส C++ สำหรับการสร้างเครือข่ายและแอปพลิเคชันบนอินเทอร์เน็ตที่สามารถทำงานบนเดสก์ท็อป เซิร์ฟเวอร์ อุปกรณ์เคลื่อนที่ และระบบฝังตัว
RakNet: เอ็นจิ้นเครือข่าย C++ แบบโอเพ่นซอร์สข้ามแพลตฟอร์มสำหรับนักพัฒนาเกม
Tufao: กรอบงานเว็บแบบอะซิงโครนัสที่สร้างขึ้นใน C ++ บน Qt
WebSocket++: ไลบรารีไคลเอ็นต์/เซิร์ฟเวอร์ websocket ที่ใช้ C++/Boost Aiso
ZeroMQ: ไลบรารีการสื่อสารอะซิงโครนัสแบบโมดูลาร์ความเร็วสูง
f-stack: สแต็กโปรโตคอลโอเพ่นซอร์สของ Tencent ซึ่งเป็นสแต็กโปรโตคอลโหมดผู้ใช้ประสิทธิภาพสูงที่ใช้ DPDK
NtyTcp: สแต็กโปรโตคอลแบบเธรดเดี่ยว อิงตาม netmap, DPDK, การใช้งาน rawSocket
LWIP: เวอร์ชันที่ปรับปรุงใหม่ของการใช้งานสแต็กโปรโตคอล TCP/IP สำหรับแพลตฟอร์ม RAM
mTCP: สแต็กโปรโตคอล TCP/IP พื้นที่ผู้ใช้ที่ปรับขนาดได้สูงสำหรับระบบมัลติคอร์
4.4BSD: * สแต็กโปรโตคอล nix ได้มาจาก 4.4BSD
Nginx: เว็บเซิร์ฟเวอร์ HTTP และพร็อกซีย้อนกลับประสิทธิภาพสูงที่ให้บริการ IMAP/POP3/SMTP
Lighttpd: ซอฟต์แวร์เว็บเซิร์ฟเวอร์โอเพ่นซอร์สที่ปลอดภัย รวดเร็ว เป็นไปตามมาตรฐานอุตสาหกรรม ปรับเปลี่ยนได้สูงและปรับให้เหมาะสมสำหรับสภาพแวดล้อมที่มีการกำหนดค่าสูง
Libmicrohttpd: เว็บเซิร์ฟเวอร์ไลบรารี c อย่างง่ายภายใต้ซอฟต์แวร์ GNU API นั้นง่ายและรวดเร็ว
shttpd: เฟรมเวิร์กเว็บเซิร์ฟเวอร์ที่ใช้ Mongoose
CivetWeb: ให้เว็บเซิร์ฟเวอร์แบบฝัง C/C++ ที่ใช้งานง่าย ทรงพลัง พร้อมตัวเลือกเสริม CGI, SSL และ Lua
CppCMS: เฟรมเวิร์กการพัฒนาเว็บประสิทธิภาพสูงฟรี (ไม่ใช่ CMS)
อีกา: เฟรมเวิร์กเว็บขนาดเล็ก C ++ (ได้รับแรงบันดาลใจจาก Python Flask)
Kore: เว็บเซิร์ฟเวอร์/เฟรมเวิร์กที่รวดเร็วและยืดหยุ่นสำหรับเว็บแอปพลิเคชันที่พัฒนาใน C.
libOnion: ไลบรารีน้ำหนักเบาที่ช่วยคุณสร้างเว็บเซิร์ฟเวอร์โดยใช้ภาษาการเขียนโปรแกรม C
QDjango: เว็บเฟรมเวิร์กที่เขียนด้วย C++ และอิงจากไลบรารี Qt ซึ่งพยายามจำลอง Django API จึงเป็นที่มาของชื่อ
Wt: ไลบรารี C ++ สำหรับการพัฒนาเว็บแอปพลิเคชัน
ไลบรารีมาตรฐาน C++: เป็นชุดของคลาสและฟังก์ชันที่เขียนด้วยภาษาหลัก และเป็นส่วนหนึ่งของมาตรฐาน ISO ของ C++ เอง
ไลบรารีเทมเพลตมาตรฐาน: ไลบรารีเทมเพลตมาตรฐาน, STL
คณะกรรมการมาตรฐาน ISO C++ : คณะกรรมการมาตรฐาน C++
FMOD: เอ็นจิ้นเสียงข้ามแพลตฟอร์มที่ใช้งานง่ายและเครื่องมือสร้างเกมเนื้อหาเสียง
Maximilian: ไลบรารีการประมวลผลสัญญาณดิจิตอลเสียงและเพลง C++
OpenAL: ไลบรารีเสียงโอเพ่นซอร์ส - API เสียงข้ามแพลตฟอร์ม
Opus: ตัวแปลงสัญญาณเสียงที่เปิดกว้าง ไม่มีค่าลิขสิทธิ์ และมีความอเนกประสงค์สูง
Speex: ตัวแปลงสัญญาณฟรี เลิกใช้งานโดย Opus
Tonic: การสังเคราะห์เสียงที่ใช้งานง่ายและมีประสิทธิภาพในภาษา C++
Vorbis: Ogg Vorbis เป็นรูปแบบเสียงบีบอัดสากลแบบเปิดที่ไม่มีกรรมสิทธิ์และไม่มีค่าลิขสิทธิ์
lisequence : ไลบรารี C++ สำหรับแสดงและวิเคราะห์ข้อมูลพันธุศาสตร์ประชากร
SeqAn: มุ่งเน้นไปที่อัลกอริทึมและโครงสร้างข้อมูลสำหรับการวิเคราะห์ลำดับของข้อมูลทางชีววิทยา
Vcflib: ไลบรารี C++ สำหรับการแยกวิเคราะห์และประมวลผลไฟล์ VCF
Wham: ใช้การทดสอบการเชื่อมโยงกับตัวแปรโครงสร้างทางพันธุกรรมในไฟล์ BAM โดยตรง
bzip2 : การบีบอัดข้อมูลคุณภาพสูง ปราศจากสิทธิบัตร และสมบูรณ์
doboz: ไลบรารีการบีบอัดเพื่อการบีบอัดที่รวดเร็ว
PhysicsFS: ไลบรารีที่ให้การเข้าถึงแบบนามธรรมไปยังไฟล์เก็บถาวรต่างๆ ซึ่งส่วนใหญ่ใช้ในวิดีโอเกม การออกแบบได้รับแรงบันดาลใจบางส่วนจากระบบย่อยไฟล์ของ Quake3
KArchive: ไลบรารีสำหรับการสร้าง อ่าน เขียน และจัดการไฟล์ที่เก็บถาวร (เช่น zip และ tar) ซึ่งให้การบีบอัดและคลายการบีบอัดข้อมูลอย่างโปร่งใสโดยใช้รูปแบบ gzip ผ่านชุดของคลาสย่อยของ QIODevice
LZ4: อัลกอริธึมการบีบอัดที่รวดเร็วมาก
LZHAM: ฐานข้อมูลการบีบอัดแบบไม่สูญเสียข้อมูล อัตราการบีบอัดใกล้เคียงกับ LZMA แต่ความเร็วในการคลายการบีบอัดจะเร็วกว่ามาก
LZMA: วิธีการบีบอัดเริ่มต้นและทั่วไปสำหรับรูปแบบ 7z
LZMAT: และไลบรารีการบีบอัดข้อมูลแบบไม่สูญเสียข้อมูลแบบเรียลไทม์ที่รวดเร็ว
Minizip: การแก้ไขข้อบกพร่องล่าสุดของ Zlib รองรับการขยายดิสก์ PKWARE การเข้ารหัส AES และการบัฟเฟอร์ IO
Snappy: การบีบอัดและคลายการบีบอัดที่รวดเร็ว
ZLib: ไลบรารีการบีบอัดสตรีมข้อมูลที่มีขนาดกะทัดรัดมาก
ZZIPlib: ให้การเข้าถึงแบบอ่านไปยังไฟล์ ZIP
Boost.Compute: ไลบรารีการประมวลผล C++ GPU สำหรับ OpenCL
Bolt: ไลบรารีเทมเพลต C++ ที่ปรับให้เหมาะสมสำหรับ GPU
C++React: ไลบรารีการเขียนโปรแกรมเชิงโต้ตอบสำหรับ C++11
Intel TBB: บล็อกการสร้างเธรดของ Intel
Libclsph: ไลบรารีการจำลองของเหลว SPH ที่เร่งด้วย GPU บนพื้นฐานของ OpenCL
OpenCL: มาตรฐานเปิดสำหรับการเขียนโปรแกรมแบบขนานของระบบที่ต่างกัน
OpenMP: OpenMP API
Thrust: ไลบรารีอัลกอริทึมแบบขนานที่คล้ายกับไลบรารีเทมเพลตมาตรฐาน C++
HPX: ระบบรันไทม์สากล C++ สำหรับแอปพลิเคชันแบบขนานและแบบกระจายทุกขนาด
VexCL: ไลบรารีเทมเพลตนิพจน์เวกเตอร์ C++ สำหรับ OpenCL/CUDA
Bcrypt: เครื่องมือเข้ารหัสไฟล์ข้ามแพลตฟอร์มที่ทำให้ไฟล์ที่เข้ารหัสสามารถพกพาไปยังระบบปฏิบัติการและโปรเซสเซอร์ที่รองรับทั้งหมด
BeeCrypt: ไลบรารีกราฟิกเข้ารหัสที่รวดเร็วพร้อมฟังก์ชันอันทรงพลังและอินเทอร์เฟซที่สะดวกสบาย
โบตัน: ไลบรารีการเข้ารหัส C++
Crypto++ : ไลบรารี C++ ฟรีสำหรับรูปแบบการเข้ารหัส
GnuPG: การใช้มาตรฐาน OpenPGP อย่างสมบูรณ์
GnuTLS: ไลบรารีการสื่อสารที่ปลอดภัยที่ใช้โปรโตคอล SSL, TLS และ DTLS
Libgcrypt: ไลบรารีกราฟิกการเข้ารหัสที่ใช้ GnuPG
Libmcrypt: ปลอดภัยสำหรับเธรด โดยจัดให้มี API แบบครบวงจร
LibreSSL: โปรโตคอล SSL/TLS ฟรี ซึ่งเป็นทางแยกของ OpenSSL ปี 2014
LibTomCrypt: เครื่องมือเข้ารหัสแบบโมดูลาร์ที่ครอบคลุมและพกพาสะดวก
libsodium: ไลบรารีการเข้ารหัสที่ใช้ NaCI ที่ให้ความเห็นและใช้งานง่าย
Nettle: ไลบรารีการเข้ารหัสที่ซ่อนอยู่
OpenSSL: ไลบรารีการเข้ารหัสโอเพ่นซอร์สที่ทรงพลัง เชิงพาณิชย์ มีคุณสมบัติครบถ้วน
hiberlite: การแมปเชิงวัตถุสัมพันธ์ C++ สำหรับ Sqlite3
LevelDB: เก็บคีย์-ค่าที่รวดเร็ว
LMDB: ที่เก็บคีย์-ค่าแบบฝังที่สอดคล้องกับองค์ประกอบพื้นฐานสี่ประการของฐานข้อมูล
MySQL++ : wrapper C++ ที่ห่อหุ้ม C API ของ MySql
RocksDB: การจัดเก็บคีย์-ค่าที่ฝังไว้อย่างรวดเร็วจาก Facebook
SQLite : ฐานข้อมูลเชิงสัมพันธ์ที่มีคุณสมบัติครบถ้วนและฝังตัวอย่างสมบูรณ์ โดยมีขนาดเพียงไม่กี่ร้อย KB และสามารถรวมไว้ในโปรเจ็กต์ของคุณได้อย่างถูกต้อง
MongoDB: ฐานข้อมูลที่ใช้พื้นที่จัดเก็บไฟล์แบบกระจาย
Boost.Test: เพิ่มไลบรารีการทดสอบ
Catch: กรอบงานเนทิฟ C++ ที่ทันสมัยมากซึ่งมีเฉพาะไฟล์ส่วนหัวสำหรับการทดสอบหน่วย การพัฒนาที่ขับเคลื่อนด้วยการทดสอบ และการพัฒนาที่ขับเคลื่อนด้วยพฤติกรรม
CppUnit: เฟรมเวิร์กการทดสอบ C++ ที่ย้ายจาก JUnit
GoogleTest: กรอบการทดสอบ Google C++
ig-debugheap: ฮีปดีบักหลายแพลตฟอร์มสำหรับการติดตามข้อผิดพลาดของหน่วยความจำ
MemTrack: สำหรับติดตามการจัดสรรหน่วยความจำใน C ++
MicroProfile: ความพยายามสร้างโปรไฟล์เครือข่ายข้ามแพลตฟอร์ม
UnitTest++: กรอบการทดสอบหน่วย C++ แบบน้ำหนักเบา
C++ B-Tree: ไลบรารีเทมเพลตที่ใช้คอนเทนเนอร์หน่วยความจำคำสั่งตามโครงสร้างข้อมูล B-tree
Hashmaps: การใช้งานอัลกอริธึมตารางแฮชที่อยู่แบบเปิดใน C ++
Cocos2d-x: เฟรมเวิร์กข้ามแพลตฟอร์มสำหรับการสร้างเกม 2 มิติ หนังสือเชิงโต้ตอบ การนำเสนอ และแอปพลิเคชันกราฟิกอื่นๆ
Grit: โครงการชุมชนเพื่อสร้างเอ็นจิ้นเกมฟรีสำหรับเกม 3 มิติแบบเปิดโลก
lrrlicht: เอ็นจิ้น #D แบบเรียลไทม์ประสิทธิภาพสูงแบบโอเพ่นซอร์สที่เขียนด้วยภาษา C++
PolyCode: เฟรมเวิร์กโอเพ่นซอร์สสำหรับการสร้างเกมที่ใช้งานในภาษา C++ (มาพร้อมกับ Lua)
bgfx: ไลบรารีการเรนเดอร์ข้ามแพลตฟอร์ม
ไคโร: ไลบรารีกราฟิก 2D รองรับอุปกรณ์เอาต์พุตหลายตัว
Horde3D: เอ็นจิ้นการเรนเดอร์และแอนิเมชั่น 3 มิติขนาดเล็ก
ผลงานชิ้นเอก: เอ็นจิ้นกราฟิก C++11 และ OpenGL 2D/3D
Ogre 3D: เอ็นจิ้นการเรนเดอร์ 3 มิติแบบเรียลไทม์ที่ยืดหยุ่นและเน้นฉากที่เขียนด้วย C++ (ไม่ใช่เอ็นจิ้นเกม)
OpenSceneGraph: ชุดเครื่องมือกราฟิก 3D โอเพ่นซอร์สประสิทธิภาพสูง
Panda3D: กรอบงานสำหรับการเรนเดอร์ 3 มิติและการพัฒนาเกม เขียนด้วย Python และ C++
Skia: ไลบรารีกราฟิก 2D ที่สมบูรณ์แบบสำหรับการวาดข้อความ กราฟิก และรูปภาพ
urho3d: การเรนเดอร์ข้ามแพลตฟอร์มและเอ็นจิ้นเกม
Boost.GIL: ไลบรารีรูปภาพทั่วไป
CImg: ชุดเครื่องมือโอเพ่นซอร์ส C++ ขนาดเล็กสำหรับการประมวลผลภาพ
FreeImage: ไลบรารีโอเพ่นซอร์สที่รองรับรูปแบบภาพทั่วไปและรูปแบบอื่น ๆ ที่จำเป็นสำหรับแอปพลิเคชันมัลติมีเดียในปัจจุบัน
GDCM: ไลบรารี DICOM ระดับรากหญ้า
ITK: ระบบวิเคราะห์รูปภาพโอเพ่นซอร์สข้ามแพลตฟอร์ม
Magick++: อินเทอร์เฟซ C++ ไปยังโปรแกรม ImageMagick
OpenCV: ไลบรารีการมองเห็นคอมพิวเตอร์แบบโอเพ่นซอร์ส
tesseract-ocr: โปรแกรม OCR
VIGRA: ไลบรารีคอมพิวเตอร์วิทัศน์ C++ วัตถุประสงค์ทั่วไปสำหรับการวิเคราะห์ภาพ
VTK: ระบบซอฟต์แวร์โอเพ่นซอร์สฟรีสำหรับคอมพิวเตอร์กราฟิก 3 มิติ การประมวลผลภาพ และการแสดงภาพ
gettext : GNU รับข้อความ
IBM ICU: ไลบรารี C, C++ และ Java ที่ให้การสนับสนุน Unicode และ globalization
libiconv: การเข้ารหัสไลบรารีการแปลงระหว่างการเข้ารหัสอักขระที่แตกต่างกัน
แช่แข็ง: เครื่องกำเนิดการแยกวิเคราะห์ Jason สำหรับ C / C ++
Jansson: ไลบรารีภาษา C สำหรับการเข้ารหัส ถอดรหัส และประมวลผลข้อมูลของ Jason
jbson: ไลบรารีสำหรับการสร้างและวนซ้ำข้อมูล BSON และเอกสาร Json ใน C++14
JeayeSON: ไลบรารี C ++ JSON ที่แข็งแกร่งมากซึ่งมีเฉพาะไฟล์ส่วนหัวเท่านั้น
JSON++ : ตัวแยกวิเคราะห์ C++ JSON
json-parser : JSON parser เขียนด้วย ANSI C แบบพกพาซึ่งมีหน่วยความจำเหลือน้อยมาก
json11 : ไลบรารี่ JSON ขนาดเล็ก C++11
jute : ตัวแยกวิเคราะห์ C ++ JSON ที่ง่ายมาก
ibjson: การแยกวิเคราะห์ JSON และไลบรารีการพิมพ์ในภาษา C ผสานรวมกับรุ่นต่างๆ ได้อย่างง่ายดาย
libjson: ไลบรารี JSON น้ำหนักเบา
PicoJSON: การแยกวิเคราะห์ JSON และการทำให้เป็นอนุกรมใน C ++ รวมถึงไฟล์ส่วนหัวเท่านั้น
Qt-Json: คลาสง่ายๆ สำหรับการแยกวิเคราะห์ข้อมูล JSON และลำดับชั้น QVariant
QJson : ไลบรารีที่ใช้ Qt สำหรับการแมปข้อมูล JSON กับออบเจ็กต์ QVariant
RepidJSON: เครื่องมือสร้างการแยกวิเคราะห์ JSON ที่รวดเร็วสำหรับ C++ รวมถึง API สไตล์ SAX และ DOM
Boost.Log: ออกแบบมาให้เป็นแบบแยกส่วนและขยายได้มาก
easyloggingpp: ไลบรารีการบันทึก C++ ที่มีไฟล์ส่วนหัวเพียงไฟล์เดียว
Log4cpp: ชุดไลบรารี C++ ที่เพิ่มบันทึกลงในไฟล์ บันทึกของระบบ IDSA และที่อื่นๆ ได้อย่างยืดหยุ่น
templog : ไลบรารี C++ น้ำหนักเบาที่สามารถเพิ่มการบันทึกลงในแอปพลิเคชัน C++ ของคุณได้
btsk: เครื่องมือตัวเรียกใช้แผนผังพฤติกรรมของเกม
การพัฒนาออบเจ็กต์: ไลบรารีการประมวลผลเชิงวิวัฒนาการ ANSI C++ ที่ใช้เทมเพลต ซึ่งสามารถช่วยให้คุณเขียนอัลกอริธึมการปรับให้เหมาะสมแบบสุ่มของคุณเองได้อย่างรวดเร็ว
Caffe: กรอบโครงข่ายประสาทเทียมที่รวดเร็ว
CCV: ไลบรารีคอมพิวเตอร์วิทัศน์สมัยใหม่ที่มีภาษา C เป็นแกนหลัก
mlpack: ไลบรารีการเรียนรู้ของเครื่อง C++ ที่ขยายได้
OpenCV: ไลบรารีการมองเห็นคอมพิวเตอร์แบบโอเพ่นซอร์ส
ผู้แนะนำ: ไลบรารี AC สำหรับคำแนะนำ/ข้อเสนอแนะผลิตภัณฑ์โดยใช้การกรองแบบร่วมมือ
โชกุน: เครื่องมือการเรียนรู้ของเครื่องโชกุน
sofia-ml: ชุดอัลกอริธึมที่เพิ่มขึ้นอย่างรวดเร็วสำหรับการเรียนรู้ของเครื่อง
ตัวนิ่ม: ไลบรารีพีชคณิตเชิงเส้น C++ คุณภาพสูงที่สร้างสมดุลที่ดีระหว่างความเร็วและความสะดวกในการใช้งาน ไวยากรณ์คล้ายกับ MatlAB มาก
blaze: ไลบรารีคณิตศาสตร์ C++ ประสิทธิภาพสูงสำหรับอัลกอริธึมที่มีความหนาแน่นและกระจัดกระจาย
ceres-solver: ไลบรารี C++ จาก Google สำหรับการสร้างแบบจำลองและการแก้ปัญหากำลังสองน้อยที่สุดแบบไม่เชิงเส้นที่ซับซ้อนขนาดใหญ่
CGal: ชุดอัลกอริธึมชุดที่มีประสิทธิภาพและเชื่อถือได้
CML: ไลบรารีคณิตศาสตร์ C++ ฟรีสำหรับเกมและกราฟิก
Eigen: ไลบรารีส่วนหัวเทมเพลต C++ ระดับสูงครอบคลุมพีชคณิตเชิงเส้น เมทริกซ์ การดำเนินการเวกเตอร์ การแก้ตัวเลข และอัลกอริธึมอื่น ๆ ที่เกี่ยวข้อง
GMTL: ไลบรารีเทมเพลตกราฟิกทางคณิตศาสตร์เป็นชุดเครื่องมือสำหรับการนำกราฟิกพื้นฐานไปใช้อย่างกว้างขวาง
GMP: ไลบรารี C/C++ สำหรับการคำนวณที่มีความแม่นยำสูง จัดการกับจำนวนเต็มที่มีเครื่องหมาย จำนวนตรรกยะ และจำนวนจุดลอยตัว
GStreamer: ไลบรารีสำหรับสร้างกราฟของส่วนประกอบการประมวลผลสื่อ
LIVE555 สื่อสตรีมมิ่ง: ไลบรารีสตรีมมิ่งมัลติมีเดียโดยใช้โปรโตคอลมาตรฐานแบบเปิด (RTP/RTCP, RTSP, SIP)
libVLC: เฟรมเวิร์กสื่อ libVLC (VLC SDK)
QtAV: เฟรมเวิร์กการเล่นมัลติมีเดียที่ใช้ Qt และ FFmpeg ที่สามารถช่วยให้คุณเขียนเครื่องเล่นได้อย่างง่ายดาย
SDL: การควบคุมเลเยอร์สื่อโดยตรงอย่างง่ายดาย
SFML: ไลบรารีมัลติมีเดียที่รวดเร็วและเรียบง่าย
Box2D: เอ็นจิ้นฟิสิกส์เกม 2D
Bullet: เอ็นจิ้นฟิสิกส์เกม 3 มิติ
Chipmunk: ไลบรารีฟิสิกส์เกม 2D ที่รวดเร็วและมีน้ำหนักเบา
LiquidFun: เอ็นจิ้นฟิสิกส์เกม 2D
ODE: Open Dynamics Engine - ไลบรารีโอเพ่นซอร์สและประสิทธิภาพสูงสำหรับการจำลองไดนามิกของร่างกายที่เข้มงวด
ofxBox2D: Wrapper เฟรมเวิร์กโอเพ่นซอร์ส Box2D
Simbody: ไลบรารีไดนามิก/ฟิสิกส์ C++ มัลติบอดี้ประสิทธิภาพสูงสำหรับการจำลองชีวกลศาสตร์ร่วมและระบบกลไก เช่น ยานพาหนะ หุ่นยนต์ และโครงกระดูกมนุษย์
MOOS-Ivp: ชุดโมดูลโอเพ่นซอร์ส C++ ที่ให้ความเป็นอิสระสำหรับแพลตฟอร์มหุ่นยนต์ โดยเฉพาะยานพาหนะทางทะเลที่ขับเคลื่อนอัตโนมัติ
MRPT: ชุดเครื่องมือการเขียนโปรแกรมหุ่นยนต์เคลื่อนที่
PCL: Point Cloud Library เป็นโปรเจ็กต์เปิดขนาดใหญ่อิสระสำหรับการประมวลผลรูปภาพ 2D/3D และพอยต์คลาวด์
ห้องสมุดวิทยาการหุ่นยนต์: ห้องสมุด C++ แบบสแตนด์อโลน รวมถึงไดนามิกของหุ่นยนต์ การวางแผนการเคลื่อนไหว และการควบคุม
RobWork: คอลเลกชันของไลบรารี C++ สำหรับการจำลองและการควบคุมระบบหุ่นยนต์
ROS: ระบบปฏิบัติการหุ่นยนต์ ซึ่งมีไลบรารีและเครื่องมือเพื่อช่วยนักพัฒนาซอฟต์แวร์สร้างแอปพลิเคชันหุ่นยนต์
ChaiScript: ภาษาสคริปต์แบบฝังที่ใช้งานง่ายสำหรับ C++
Lua: กลไกการเขียนสคริปต์ขนาดเล็กและรวดเร็วสำหรับไฟล์การกำหนดค่าและสคริปต์แอปพลิเคชันพื้นฐาน
luacxx : C++11 API สำหรับสร้างการเชื่อมโยง Lua
SWIG : เครื่องมือสร้าง wrapper/อินเทอร์เฟซที่ช่วยให้โค้ด C++ ของคุณลิงก์ไปยัง JavaScript, Perl, PHP, Python, Tcl และ Ruby
V7: เอ็นจิ้น JavaScript แบบฝัง
V8: เครื่องมือ JavaScript ที่รวดเร็วของ Google ที่สามารถฝังลงในแอปพลิเคชัน C ++ ใดก็ได้
Cap'n Proto: รูปแบบการแลกเปลี่ยนข้อมูลที่รวดเร็วและระบบ RPC
ซีเรียล : ไลบรารีการทำให้เป็นอนุกรม C ++ 11
FlatBuffers: ไลบรารีซีเรียลไลเซชันที่มีประสิทธิภาพของหน่วยความจำ
MessagePack: ไลบรารีซีเรียลไลเซชันแบบไบนารีที่มีประสิทธิภาพสำหรับ C/C++ เช่น JSON
ProtoBuf: บัฟเฟอร์โปรโตคอล รูปแบบการแลกเปลี่ยนข้อมูลของ Google
SimpleBinaryEncoding : การเข้ารหัสและถอดรหัสข้อมูลแอปพลิเคชันในรูปแบบไบนารีสำหรับแอปพลิเคชันที่มีความหน่วงต่ำ
Thrift: IPC/RPC ข้ามภาษาที่มีประสิทธิภาพ ใช้ใน C++, Java, Python, PHP, C# และภาษาอื่นๆ อีกมากมาย พัฒนาโดย Facebook
libvpx: การเข้ารหัสและถอดรหัส VP8/VP9 SDK
FFMpeg: โซลูชันข้ามแพลตฟอร์มที่สมบูรณ์แบบสำหรับการบันทึก แปลงสตรีมวิดีโอและเสียง
libde265: การใช้งานตัวแปลงสัญญาณวิดีโอ h.265 แบบเปิด
OpenH264: ตัวแปลงสัญญาณโอเพ่นซอร์ส H.364
Theora: รูปแบบการบีบอัดวิดีโอโอเพ่นซอร์สฟรี
LibXml++: ตัวแยกวิเคราะห์ xml สำหรับ C++
PugiXML: ตัวแยกวิเคราะห์ XML น้ำหนักเบา เรียบง่าย และรวดเร็วสำหรับ C++ ที่รองรับ XPath
RapidXML: พยายามสร้างตัวแยกวิเคราะห์ XML ที่เร็วที่สุดโดยยังคงรักษาความสะดวกในการใช้งาน การพกพา และความเข้ากันได้ของ W3C ที่เหมาะสม
TinyXML: ตัวแยกวิเคราะห์ XML C++ ที่เรียบง่ายและขนาดเล็กที่สามารถรวมเข้ากับโปรเจ็กต์อื่นได้อย่างง่ายดาย
TinyXML2: ตัวแยกวิเคราะห์ C++ CML ที่ง่ายและรวดเร็วที่สามารถรวมเข้ากับโปรเจ็กต์อื่นได้อย่างง่ายดาย
TinyXML++: อินเทอร์เฟซใหม่สำหรับ TinyXML ที่ใช้ประโยชน์จากข้อดีหลายประการของ C++, เทมเพลต, ข้อยกเว้น และการจัดการข้อยกเว้นที่ดีขึ้น
Xerces-C++: ตัวแยกวิเคราะห์การตรวจสอบ XML ที่เขียนในชุดย่อยของ C++ แบบพกพา
thread_local
static_assert
nullptr
ไม่ยกเว้น
ประเภท Decltype
บริบท
ถ่าน16_t
ถ่าน32_t
การจัดแนว
จัดตำแหน่ง
อัตโนมัติ
ระดับ
ค่าเริ่มต้น
ลบ
ส่งออก
ภายนอก
แบบอินไลน์
ไม่แน่นอน
ขนาดของ
โครงสร้าง
โดยใช้
เป็น_โมฆะ
is_integral
is_floating_point
is_array
is_enum
is_union
is_class
is_function
is_pointer
is_lvalue_reference
is_rvalue_reference
is_member_object_pointer
is_member_function_pointer
เป็น_พื้นฐาน
คือ_เลขคณิต
คือ_สเกลาร์
is_object
is_compound
is_reference
is_member_pointer
is_const
is_volatile
is_trivial
is_trivially_copyable
is_standard_layout
is_literal_type
is_empty
is_polymorphic
is_abstract
is_signed แล้ว
is_unsigned
is_constructible
is_trivially_constructible
is_nothrow_constructible
is_default_constructible
is_trivially_default_constructible
is_nothrow_default_constructible
is_copy_constructible
is_trivially_copy_constructible
is_nothrow_copy_constructible
is_move_สร้างได้
is_trivially_move_สร้างได้
is_nothrow_move_สร้างได้
is_มอบหมายได้
is_trivially_มอบหมายได้
is_nothrow_มอบหมายได้
is_copy_มอบหมายได้
is_trivially_copy_มอบหมายได้
is_nothrow_copy_มอบหมายได้
is_move_มอบหมายได้
is_trivially_move_มอบหมายได้
is_nothrow_move_มอบหมายได้
is_destructible
is_trivially_destructible
is_nothrow_destructible
has_virtual_destructor
มาตรฐาน::อาร์เรย์
มาตรฐาน::forward_list
มาตรฐาน::เริ่มต้น
มาตรฐาน::สิ้นสุด
มาตรฐาน::ย้าย
การเริ่มต้นคอนเทนเนอร์
วางตำแหน่ง
std::unordered_map
std :: unordeed_multimap
std :: unordeed_set
std :: unordeed_multiset
std :: make_tuple
std :: รับ
std :: tie
std :: hash <std :: string>
std :: hash <std :: u16string>
std :: hash <std :: u32string>
std :: hash <std :: wstring>
std :: hash <std :: error_code>
std :: hash <std :: bitset>
std :: hash <std :: type_index>
std :: hash <std :: เวกเตอร์ <บูล >>
std :: shared_ptr
std :: beak_ptr
std :: unique_ptr
auto_ptr (เลิกใช้แล้ว)
masic_regex
sub_match
match_results
ฟังก์ชั่นที่ผ่านการรับรอง CV
คุณสมบัติใบเสนอราคา
std :: ฟังก์ชั่น
std :: ผูกพัน
std :: bad_function_call
mem_fn
พิมพ์นามแฝง
การเริ่มต้นสมาชิกชั้นเรียน
เครื่องราง
ผู้เข้าก่อสร้าง
สืบทอดตัวสร้าง
ย้ายตัวสร้าง
ย้ายผู้ดำเนินการที่ได้รับมอบหมาย
วงเล็บมุม ">"
เทมเพลตนามแฝง
เทมเพลตภายนอก
เทมเพลต Variadic
พารามิเตอร์เทมเพลตเริ่มต้น
std :: atomic <bool>
std :: atomic <char>
std :: atomic <chared char>
std :: atomic <unsigned char>
std :: atomic <Short>
std :: atomic <ไม่ได้ลงชื่อสั้น>
std :: atomic <int>
std :: atomic <int ที่ไม่ได้ลงชื่อ>
std :: atomic <long>
std :: atomic <ไม่ได้ลงชื่อยาว>
std :: atomic <ยาวนาน>
std :: atomic <ไม่ได้ลงชื่อนาน>
std :: atomic <char8_t>
std :: atomic <char16_t>
std :: atomic <char32_t>
std :: atomic <wchar_t>
std :: atomic <std :: int8_t>
std :: atomic <std :: uint8_t>
std :: atomic <std :: int16_t>
std :: atomic <std :: uint16_t>
std :: atomic <std :: int32_t>
std :: atomic <std :: uint32_t>
std :: atomic <std :: int64_t>
std :: atomic <std :: uint64_t>
std :: atomic <std :: int_least8_t>
std :: atomic <std :: uint_least8_t>
std :: atomic <std :: int_least16_t>
std :: atomic <std :: uint_least16_t>
std :: atomic <std :: int_least32_t>
std :: atomic <std :: uint_least32_t>
std :: atomic <std :: int_least64_t>
std :: atomic <std :: uint_least64_t>
std :: atomic <std :: int_fast8_t>
std :: atomic <std :: uint_fast8_t>
std :: atomic <std :: int_fast16_t>
std :: atomic <std :: uint_fast16_t>
std :: atomic <std :: int_fast32_t>
std :: atomic <std :: uint_fast32_t>
std :: atomic <std :: int_fast64_t>
std :: atomic <std :: uint_fast64_t>
std :: เธรด
std :: mutex
std :: ล็อค
std :: call_once
std :: atomic
std :: cond_ition_variable
std :: async
ระเหย
std :: อนาคต
std :: thread_local
std :: exception_ptr
std :: make_exception_ptr
std :: current_exception
std :: rethrow_exception
std :: nested_exception
std :: throw_with_nested
std :: rethrow_if_nested
std :: error_category
std :: generic_category
std :: error_condition
std :: errc
std :: error_code
std :: system_error
ไวยากรณ์: __pragma (ตัวอักษรสตริง)
_pragma Operator
_cplusplus มาโคร
สำหรับลูปสำหรับ (x: ช่วง)
จัดเรียง
อลิกนาส
std :: allignment_of
std :: alligned_storage
std :: max_align_t
std :: จัดเรียง
คำหลักที่ชัดเจน
ไวยากรณ์: static_assert (นิพจน์คงที่, "สตริงพรอมต์")
ยืนยันแบบคงที่
ขีด จำกัด ตัวเลข
สตริงดิบ
Trace Return Type Type ไวยากรณ์
ไวยากรณ์เพื่อนขยาย
ขยายจำนวนเต็ม
สมาคมที่ไม่ จำกัด
เนมสเปซแบบอินไลน์
ตัวอักษรที่ผู้ใช้กำหนด
enums พิมพ์อย่างมาก
อุปกรณ์สุ่ม
std :: ref และ std :: cref
Constexpr
การแสดงออกของแลมบ์ดา
nullptr
ป้องกันการ จำกัด ประเภท
รายการ initializer - - รายการ initializer
initializer_list (เป็นพารามิเตอร์อินพุต)
ไวยากรณ์การเริ่มต้นแบบครบวงจรและความหมาย
พ็อด
ยาวยาว
ย้ายความหมาย
การอ้างอิง rvalue
คุณสมบัติ C99
กฎ Sfinae ทั่วไป
ตรวจสอบว่าประเภทคือ std :: nullptr_t
is_final (ตรวจสอบว่าประเภทคลาสเป็นคลาสสุดท้ายหรือไม่)
Exchange (แทนที่พารามิเตอร์จริงด้วยค่าใหม่และส่งคืนค่าก่อนหน้า)
Integer_sequence (การใช้ลำดับจำนวนเต็มคอมไพล์-เวลา)
rbegin (ส่งคืนตัววนซ้ำย้อนกลับชี้ไปที่คอนเทนเนอร์หรืออาร์เรย์)
Crbegin (ส่งคืนตัววนซ้ำย้อนกลับชี้ไปที่คอนเทนเนอร์หรืออาร์เรย์)
REND (ส่งคืนตัววนซ้ำหางกลับของคอนเทนเนอร์หรืออาร์เรย์)
crend (ส่งคืนตัววนซ้ำหางกลับของคอนเทนเนอร์หรืออาร์เรย์)
make_reverse_iterator (สร้าง std :: reverse_iterator พร้อมประเภทที่อนุมานได้จากอาร์กิวเมนต์)
เริ่มต้น (ส่งคืนตัววนซ้ำที่ชี้ไปที่จุดเริ่มต้นของคอนเทนเนอร์หรืออาร์เรย์)
cbegin (ส่งคืนตัววนซ้ำที่ชี้ไปที่จุดเริ่มต้นของคอนเทนเนอร์หรืออาร์เรย์)
สิ้นสุด (ส่งคืนตัววนซ้ำที่ชี้ไปที่ส่วนท้ายของคอนเทนเนอร์หรืออาร์เรย์)
Cend (ส่งคืนตัววนซ้ำที่ชี้ไปที่ส่วนท้ายของคอนเทนเนอร์หรืออาร์เรย์)
rbegin (ส่งคืนตัววนซ้ำย้อนกลับชี้ไปที่คอนเทนเนอร์หรืออาร์เรย์)
Crbegin (ส่งคืนตัววนซ้ำย้อนกลับชี้ไปที่คอนเทนเนอร์หรืออาร์เรย์)
REND (ส่งคืนตัววนซ้ำหางกลับของคอนเทนเนอร์หรืออาร์เรย์)
crend (ส่งคืนตัววนซ้ำหางกลับของคอนเทนเนอร์หรืออาร์เรย์)
ลงทะเบียน
ไบต์ (ประเภทไบต์)
is_aggregate (ตรวจสอบว่าประเภทเป็นประเภทรวม)
is_swappable_with (ตรวจสอบว่าวัตถุประเภทสามารถแลกเปลี่ยนกับวัตถุประเภทเดียวกันหรือประเภทอื่นได้)
is_swappable (ตรวจสอบว่าวัตถุประเภทสามารถแลกเปลี่ยนกับวัตถุประเภทเดียวกันหรือประเภทอื่นได้)
is_nothrow_swappable_with (ตรวจสอบว่าวัตถุประเภทสามารถแลกเปลี่ยนกับวัตถุประเภทเดียวกันหรือประเภทอื่นได้)
is_nothrow_swappable (ตรวจสอบว่าวัตถุประเภทสามารถแลกเปลี่ยนกับวัตถุประเภทเดียวกันหรือประเภทอื่นได้)
IS_INVOCABLE (ตรวจสอบว่าประเภทสามารถเรียกใช้กับประเภทอาร์กิวเมนต์ที่กำหนด (เช่นเดียวกับ std :: ravoke))
is_invocable_r (ตรวจสอบว่าประเภทสามารถเรียกใช้กับประเภทอาร์กิวเมนต์ที่กำหนด (เช่นเดียวกับ std :: ravoke))
IS_NOTHROW_INVOCABLE (ตรวจสอบว่าประเภทสามารถเรียกใช้กับประเภทอาร์กิวเมนต์ที่กำหนด (เช่นเดียวกับ std :: ravoke))
IS_NOTHROW_INVOCABLE_R (ตรวจสอบว่าประเภทสามารถเรียกได้ด้วยประเภทอาร์กิวเมนต์ที่กำหนด (เช่นเดียวกับ std :: ravoke))
Invoke_result (อนุมานประเภทผลลัพธ์ของการเรียกวัตถุที่เรียกได้ด้วยชุดของพารามิเตอร์จริง)
void_t (เทมเพลตนามแฝงพารามิเตอร์ตัวแปร)
ร่วม (ตรรกะและฟังก์ชันเมตาของพารามิเตอร์ตัวแปร)
disjunction (logical หรือ meta-function พร้อมพารามิเตอร์ตัวแปร)
ndisjunctionegation (ฟังก์ชั่นที่ไม่ใช่องค์ประกอบเชิงตรรกะ)
integral_constant (ค่าคงที่เวลารวบรวมของประเภทที่ระบุด้วยค่าที่ระบุ)
as_const (รับการอ้างอิง const ไปยังพารามิเตอร์ของมัน)
ใช้ (เรียกฟังก์ชั่นที่มีอาร์กิวเมนต์ tuple)
make_from_tuple (สร้างวัตถุจาก tuple ของอาร์กิวเมนต์)
เป็นทางเลือก (อาจหรือไม่อาจถือ wrapper สำหรับวัตถุ)
make_optional (สร้างวัตถุเสริม)
std :: swap (std :: เสริม) (อัลกอริทึม swap swap พิเศษ)
std :: hash <std :: ตัวเลือก> (อัลกอริทึม STD :: Hash Algorithm)
nullopt_t (ตัวบ่งชี้ประเภทตัวเลือกที่มีสถานะไม่ได้กำหนดค่า)
BAD_OPTIONAL_ACCESS (ข้อยกเว้นระบุการตรวจสอบการเข้าถึงตัวเลือกโดยไม่มีค่า)
nullopt (วัตถุประเภท nullopt_t)
ตัวแปร
เยี่ยมชม (เรียกวัตถุฟังก์ชั่นที่ให้ไว้กับแต่ละอาร์กิวเมนต์ที่จัดขึ้นโดยหนึ่งตัวหรือมากกว่านั้น)
Holds_alternative (ตรวจสอบว่าตัวแปรในปัจจุบันมีประเภทที่กำหนด)
std :: get (std :: ตัวแปร) (อ่านค่าของตัวแปรด้วยดัชนีหรือประเภทที่กำหนด (ถ้าประเภทไม่ซ้ำกัน) ให้โยนข้อผิดพลาดในข้อผิดพลาด)
get_if (ด้วยดัชนีหรือประเภทที่กำหนด (ถ้าเป็นเอกลักษณ์) ให้รับตัวชี้ไปยังค่าของตัวแปรที่แหลมส่งคืนตัวชี้โมฆะเมื่อเกิดข้อผิดพลาด)
std :: swap (std :: variant) (อัลกอริทึม swap swap พิเศษ)
MONOSTATE (ประเภทตัวยึดที่ใช้เป็นตัวเลือกแรกของตัวเลือกที่ไม่สามารถสร้างได้
BAD_VARIANT_ACCESS (ข้อยกเว้นโยนเมื่อเข้าถึงค่าของตัวแปรอย่างผิดกฎหมาย)
variant_size (รับขนาดของรายการตัวเลือกตัวแปร ณ เวลาคอมไพล์)
variant_size_v (รับขนาดของรายการตัวเลือกตัวแปรในเวลาคอมไพล์)
variant_alternative (รับประเภทของตัวเลือกที่ระบุโดยตัวห้อยของมันในเวลาคอมไพล์)
variant_alternative_t (รับประเภทของตัวเลือกที่ระบุโดยตัวห้อยของมันในเวลาคอมไพล์)
std :: hash <std :: variant> (อัลกอริทึม HASH พิเศษพิเศษ :: Hash)
variant_npos (ตัวห้อยของตัวแปรที่ผิดกฎหมาย)
(วัตถุใด ๆ ที่สามารถเก็บอินสแตนซ์ของประเภทการคัดลอกที่สร้างไม่ได้ (copyconstructible))
std :: swap (std :: any) (อัลกอริทึม swap swap พิเศษ)
Any_cast (การเข้าถึงประเภทที่ปลอดภัยสำหรับวัตถุที่มีอยู่)
Make_any (สร้างวัตถุใด ๆ )
bad_any_cast (ข้อยกเว้นที่ถูกโยนโดย any_cast ที่ส่งกลับตามค่าเมื่อประเภทไม่ตรงกัน)
TO_CHARS (แปลงค่าจำนวนเต็มหรือจุดลอยตัวเป็นภาพลำดับอักขระ)
From_Chars (แปลงลำดับอักขระเป็นจำนวนเต็มหรือค่าจุดลอยตัว)
chars_format (ระบุรูปแบบที่ใช้โดย std :: to_chars และ std :: from_chars)
ว่างเปล่า (ตรวจสอบว่าคอนเทนเนอร์ว่างเปล่า)
ข้อมูล (รับตัวชี้ไปยังอาร์เรย์พื้นฐาน)
insert_or_assign (แทรกองค์ประกอบหรือกำหนดให้กับองค์ประกอบปัจจุบันหากมีคีย์อยู่แล้ว)
try_emplace (หากไม่มีคีย์ให้ใส่ไว้ในสถานที่หากคีย์มีอยู่ให้ทำอะไรเลย)
สารสกัด (ปล่อยโหนดจากคอนเทนเนอร์อื่น)
ผสาน (เข้าร่วมโหนดจากคอนเทนเนอร์อื่น)
insert_or_assign (แทรกองค์ประกอบหรือกำหนดให้กับองค์ประกอบปัจจุบันหากมีคีย์อยู่แล้ว)
try_emplace (หากไม่มีคีย์ให้ใส่ไว้ในสถานที่หากคีย์มีอยู่ให้ทำอะไรเลย)
สารสกัด (ปล่อยโหนดจากคอนเทนเนอร์อื่น)
ผสาน (เข้าร่วมโหนดจากคอนเทนเนอร์อื่น)
<h5 id = "ผู้ใช้-เนื้อหา-cpp_headfile_initializer_list" tabindex = "-1" คลาส = "หัว