Sejarah bahasa pemrograman C++ dimulai pada tahun 1979 , ketika Bjarne Stroustrup melakukan beberapa pengembangan untuk tesis doktoralnya. Dari semua bahasa yang dapat digunakan Stroustrup, ada satu yang disebut Simula, yang seperti namanya, mungkin merupakan bahasa yang dirancang terutama untuk simulasi. Bahasa Simula 67 merupakan varian yang digunakan oleh Stroustrup dan dianggap sebagai bahasa utama yang mendukung paradigma pemrograman berorientasi objek. Stroustrup menganggap paradigma ini bermanfaat dalam pengembangan pengemasan. Namun, bahasa Simula terlalu lambat untuk penggunaan praktis dan praktis. Tak lama kemudian, Bjarne Stroustrup ingin menyempurnakan C dengan mendukung paradigma berorientasi objek. Dia menyelidiki implementasi OO Smalltalk untuk mendapatkan ide implementasi. Namun dia tidak mau melepaskan performanya untuk ini, jadi dia mulai mengerjakan "C dengan Kelas (C dengan kelas)", berharap kode C++ akan memiliki performa yang serupa (atau lebih baik) dengan kode C saat dijalankan.
Pada tahun 1983 , nama bahasanya diubah dari "C with Classes" menjadi C++. Operator ++ di C adalah operator yang digunakan untuk menaikkan variabel, yang memberi Anda beberapa wawasan tentang bagaimana Stroustrup memandang bahasa tersebut. Banyak fitur baru yang ditambahkan selama periode ini, yang paling menonjol adalah fungsi virtual, fungsi yang berlebihan, referensi dengan ampersand, kata kunci const, dan komentar satu baris menggunakan dua garis miring.
Pada tahun 1985 , Stroustrup menerbitkan buku berjudul "Bahasa Pemrograman C++". Pada tahun yang sama, C++ diimplementasikan sebagai produk komersial. Bahasanya belum terstandarisasi secara formal, menjadikan buku ini sebagai rujukan yang sangat penting. Bahasa ini diperbarui lagi pada tahun 1989 untuk menyertakan anggota yang dilindungi dan statis, serta warisan dari beberapa kelas.
Pada tahun 1990 , Manual Referensi C++ Beranotasi dirilis. Pada tahun yang sama, kompiler Turbo C++ Borland akan dirilis sebagai produk komersial. Turbo C++ menambahkan banyak perpustakaan lain yang dapat memberikan dampak besar pada pengembangan C++. Meskipun versi stabil terakhir Turbo C++ adalah pada tahun 2006, kompilernya masih banyak digunakan.
Pada tahun 1998 , Komite Standar C++ menerbitkan Standar Internasional C++ ISO/IEC 14882:1998 yang pertama, yang secara informal dikenal sebagai C++98. Dikatakan bahwa "Manual Referensi C++ Beranotasi" memiliki pengaruh yang besar terhadap perumusan standar. Juga disertakan Perpustakaan Templat Standar, yang pengembangan konsepnya dimulai pada tahun 1979. Pada tahun 2003, komite menanggapi beberapa permasalahan yang dilaporkan dalam standar tahun 1998 dan merevisinya. Bahasa yang diubah disebut C++03.
Pada tahun 2005 , Komite Standar C++ menerbitkan laporan teknis (disebut TR1) yang merinci berbagai fitur yang mereka rencanakan untuk ditambahkan ke standar C++ terbaru. Standar baru ini secara informal dikenal sebagai C++0x karena diharapkan akan dirilis sebelum akhir dekade pertama. Ironisnya, standar baru ini baru akan dirilis pada pertengahan tahun 2011. Hingga saat itu, beberapa laporan teknis telah dipublikasikan, dan beberapa kompiler mulai menambahkan dukungan eksperimental untuk fitur-fitur baru.
Pada pertengahan tahun 2011 , standar C++ baru (disebut C++11) telah selesai. Proyek perpustakaan Boost memiliki dampak yang signifikan terhadap standar baru, dengan beberapa modul baru datang langsung dari perpustakaan Boost yang sesuai. Beberapa fitur baru termasuk dukungan ekspresi reguler, perpustakaan pengacakan yang komprehensif, perpustakaan waktu C++ baru, dukungan atom, perpustakaan threading standar, sintaks loop for baru yang menyediakan fungsionalitas yang mirip dengan loop foreach dalam beberapa bahasa lain, kata kunci otomatis, baru kelas kontainer, dukungan yang lebih baik untuk daftar penginisialisasi gabungan dan array, dan templat variadik.
Pada tahun 2014 , C++ 14 (juga dikenal sebagai C++ 1y) dirilis sebagai perpanjangan kecil dari C++11. Fungsi utamanya adalah perbaikan bug dan perbaikan kecil. Rancangan prosedur pemungutan suara standar internasional diselesaikan pada pertengahan Agustus 2014 untuk memperkuat fungsi lambda. constexpr dan ketik fitur inferensi.
Pada tahun 2017 , standar C17 dirilis. Peningkatan pada bahasa inti dan perpustakaan.
Pada tahun 2020 , standar C++20 dirilis, meluncurkan banyak fitur kelas berat, yang lebih penting adalah:
Konsep: Konsep mengubah cara kita berpikir dan pola program. Itu adalah kategori semantik dari parameter templat. Mereka memungkinkan Anda untuk mengekspresikan niat Anda secara langsung dalam sistem tipe. Jika terjadi kesalahan, Anda akan menerima pesan kesalahan yang jelas.
Pustaka rentang: Pustaka rentang baru memungkinkan eksekusi algoritme secara langsung pada kontainer, menyusunnya dengan notasi pipa, dan menerapkannya pada aliran data tak terbatas.
Coroutine: Pemrograman asinkron di C++ menjadi populer berkat coroutine. Coroutine adalah dasar untuk tugas kolaboratif, event loop, aliran data atau pipeline tanpa batas.
Modul: Modul mengatasi keterbatasan file header. Pemisahan file header dan file sumber sudah menjadi usang seperti praprosesor. Terakhir, kami memiliki waktu pembuatan yang lebih cepat dan cara yang lebih mudah untuk membuat paket.
Konkurensi: Atomic Smart Pointer, Thread yang Bergabung & Dapat Dibatalkan, Perpustakaan Sinkronisasi C20, yang meningkatkan kemampuan pemrograman bersamaan C++;
tutorial C++
Pengantar C++
Pengaturan lingkungan C++
Sintaks dasar C++
komentar C++
tipe data C++
Tipe variabel C++
Cakupan variabel C++
Konstanta C++
Jenis pengubah C++
Kelas penyimpanan C++
Operator C++
putaran C++
penilaian C++
fungsi C++
angka C++
susunan C++
rangkaian C++
petunjuk C++
Referensi C++
C++ Tanggal & Waktu
Input dan output dasar C++
Struktur data C++
Kelas & objek C++
Warisan C++
Operator C++ kelebihan beban dan fungsi kelebihan beban
Polimorfisme C++
Abstraksi data C++
Enkapsulasi data C++
Antarmuka C++ (kelas abstrak)
File dan aliran C++
Penanganan pengecualian C++
Memori dinamis C++
Ruang nama C++
Templat C++
Praprosesor C++
Pemrosesan sinyal C++
C++ multithread
Pemrograman Web C++
Tutorial C++ STL
Perpustakaan standar C++
1. Pengetahuan dasar
8.1 Konsep dasar struktur
8.2 Definisi dan penggunaan struktur
8.3 Struktur susunan
8.4 Penunjuk struktur
8.5 Struktur Struktur Bersarang
8.6 Struktur sebagai parameter fungsi
8.7 Skenario penggunaan Const dalam struktur
7.1 Konsep dasar pointer
7.2 Definisi dan penggunaan variabel pointer
7.3 Ruang memori ditempati oleh pointer
7.4 Pointer nol dan pointer liar
7.5 const penunjuk yang dimodifikasi
7.6 Pointer dan array
7.7 Petunjuk dan fungsi
7.8 Pointer, array, fungsi
1. pernyataan goto (tidak disarankan)
2. Array satu dimensi
3. Array dua dimensi
4. Transfer nilai dalam fungsi
5. Deklarasi fungsi
6. Menulis fungsi dalam file terpisah
7. Penunjuk
8. Struktur
2. Pemrograman Inti
3.1 Parameter default fungsi
3.2 Parameter tempat fungsi
3.3 Fungsi kelebihan beban
2.1 Dasar penggunaan referensi
2.2 Catatan tentang kutipan
2.3 Referensi sebagai parameter fungsi
2.4 Referensi sebagai nilai pengembalian fungsi
2.5 Sifat kutipan
2.6 Referensi Konstan
1.1 Sebelum menjalankan program
1.2 Setelah menjalankan program
1.3 operator baru
1. Model partisi memori
2. Kutipan
3. Fungsi
"Pemahaman mendalam tentang C++11: Analisis dan penerapan fitur-fitur baru C++11"
"C++ Pengantar Klasik (Edisi ke-10)"
"C++ Primer Plus 6th Edition Versi Cina (diproduksi oleh Asynchronous Books)"
"Seri Terjemahan Buku Komputer Tsinghua: Menguasai C++ (Edisi ke-9)"
"Pemrograman Tingkat Lanjut dalam C++ (Edisi ke-4)"
"Pengantar Pemrograman Game C++ (Edisi ke-4) (diproduksi oleh Asynchronous Books)"
"Analisis Kode Sumber STL"
"Pemrograman C++: Prinsip dan Praktek (Dasar) (Buku Asli Edisi ke-2)"
"C++ versi Cina yang dipercepat"
"Pemikiran Pemrograman C++ (Dua Volume)"
"STL Efektif versi Cina: 50 pengalaman menggunakan STL secara efektif"
"Anatomi Pemrograman C++: Permasalahan, Solusi, dan Pedoman Perancangan"
"Templat C++ versi Cina"
"Pemikiran Baru dalam Desain C++"
"Pemrograman Meta Templat C++"
"Praktik Pemrograman Bersamaan C++"
"Bahasa Pemrograman C++ (Bagian 1-3) (Buku Asli Edisi ke-4)"
"Perpustakaan Standar C++ (Edisi ke-2)"
"C++ Penting"
"Desain dan Evolusi Bahasa C++"
"Eksplorasi mendalam model objek C++"
"Pemrograman Generik dan STL"
10 fitur C++11 yang harus digunakan setiap pengembang C++
15 fitur C++11 yang benar-benar harus Anda gunakan dalam proyek C++ Anda
Cara menggunakan ekspresi Lambda di C++11
Pemahaman mendalam tentang C++11
Penyortiran muntah darah: fitur baru C++11
C++11 fitur baru poin pengetahuan auto dan decltype
Fitur baru C++11: referensi nilai, referensi nilai, semantik perpindahan, penerusan sempurna
C++11 inisialisasi daftar fitur baru
C++11 fitur baru std::fungsi dan ekspresi lambda
Fitur baru C++11: penyempurnaan templat
C++11 fitur baru dan poin pengetahuan terkait thread
C++11 fitur baru operasi asinkron-asinkron
C++11 fitur baru penunjuk cerdas
Fitur umum baru C++11 (1)
Fitur umum baru C++11 (2)
Diskusi singkat tentang fitur baru C++14
Semua poin pengetahuan tentang fitur baru C++14 ada di sini
Ringkasan: Fitur baru C++17
Fitur bahasa C++20
P1 Pengantar Pemrograman C++
File header P2 dan deklarasi kelas
Konstruktor P3
Transfer parameter P4 dan nilai pengembalian
Operator P5 kelebihan beban dan objek sementara
P6 Tinjau proses implementasi kelas Kompleks
P7 tiga fungsi utama: konstruksi salinan, replikasi salinan, dan penghancuran
P8 Manajemen tumpukan, tumpukan, dan memori
P9 Tinjau proses implementasi kelas String
Ekstensi P10: templat kelas, templat fungsi, dan lainnya
P11 Komposisi dan warisan
Desain terkait Komisi P13
Hlm.14 1 Pendahuluan
Fungsi konversi P15 2
P16 3 konstruktor satu argumen tidak eksplisit
P17 4 pointer seperti kelas
P18 5 berfungsi seperti kelas
Diskusi pengalaman namespace P19 6
Templat kelas P20 7
P21 8 Templat Fungsi
P22 9 Templat Anggota
P23 10 spesialisasi
P24 11 Spesialisasi Parsial Templat
P25 12 parameter templat templat
P26 13 Tentang perpustakaan standar C++
P27 14 Tiga tema
P28 15 Referensi
P29 16 Pembangunan dan pemusnahan berdasarkan hubungan gabungan & pewarisan
P30 17 Tentang vptr dan vtbl
P31 18 Tentang ini
P32 19 0 Tentang Pengikatan Dinamis
P33 19 1 Tentang Pengikatan Dinamis
P34 20 Tentang Baru, Hapus
P35 21 Operator baru, hapus operator
P36 22 Contoh
P37 23 Membebani contoh baru,hapus$
P38 24 Basic String menggunakan ekstra baru untuk memperluas volume aplikasi
Perpustakaan Standar C++ - kumpulan kelas dan fungsi yang ditulis dalam bahasa inti dan bagian dari standar ISO C++ itu sendiri
Perpustakaan Templat Standar - Perpustakaan Templat Standar
Perpustakaan C POSIX - Spesifikasi perpustakaan standar C untuk sistem POSIX
Komite Standar ISO C++ - Komite Standar C++
FAQ C++ - Pertanyaan Umum C++
Free Country - Free Country menyediakan kode sumber C++ gratis dan pustaka C++ yang mencakup bidang pemrograman C++ seperti kompresi, pengarsipan, pemrograman game, pustaka templat standar, dan pemrograman GUI.
C and C++ Users Group - Grup pengguna C dan C++ menyediakan kode sumber gratis untuk proyek C++ yang mencakup berbagai bidang pemrograman, termasuk AI, animasi, kompiler, database, debugging, enkripsi, permainan, grafik, GUI, alat bahasa, Pemrograman sistem, dll .
LearnCpp - Pelajari pemrograman c++ secara gratis
CodeCogs - CodeCogs adalah pustaka sumber terbuka kolaboratif komponen numerik untuk C/C++
codeproject - proyek kode sumber daya C/C++ yang disediakan oleh codeproject
thoughtco - kode sumber C++ terkait game
Perpustakaan C/C++ Gratis - Kode sumber C++ gratis dan alat berguna lainnya
Perpustakaan Standar C++ - Ini adalah halaman web yang mengumpulkan daftar tautan ke beberapa situs web C/C++
cplusplus - situs web pembelajaran C++
Kode Sumber C++ - Ini adalah daftar lengkap 345 kode sumber untuk C++
Pustaka Standar Apache C++: adalah kumpulan algoritma, container, iterator, dan komponen dasar lainnya
ASL: Perpustakaan Kode Sumber Adobe menyediakan pustaka kode sumber C++ yang ditinjau oleh rekan sejawat dan portabel.
Boost: Koleksi besar pustaka C++ tujuan umum.
BDE: Lingkungan pengembangan dari Bloomberg Intelligence Labs.
Cinder: Komunitas pengembangan sumber terbuka yang menyediakan pengkodean kreatif berkualitas profesional.
Bxxomfort: Pustaka ringan khusus header yang memindahkan beberapa fitur baru C++11 ke C++03.
Dlib: Pustaka C++ lintas platform universal yang dirancang menggunakan pemrograman kontrak dan teknologi C++ modern.
EASTL: Bagian publik EA-STL
fread-cpp: Kerangka pengembangan aplikasi perusahaan
Kebodohan: Pustaka C++ sumber terbuka yang dikembangkan dan digunakan oleh Facebook.
JUCE: Pustaka C++ yang komprehensif untuk mengembangkan perangkat lunak lintas platform
libphenom: Kerangka kerja acara untuk membangun sistem berkinerja tinggi dan sangat skalabel.
LibSourcey: C++11 menampilkan IO untuk streaming video real-time dan aplikasi jaringan berkinerja tinggi
Loki: Desain pustaka C++, termasuk implementasi pola dan idiom desain umum.
MiLi: Pustaka C++ kecil khusus header
openFrameworks: Mengembangkan toolkit C++ untuk pengkodean kreatif.
Qt: Aplikasi lintas platform dan kerangka antarmuka pengguna
Alasan: Kerangka kerja lintas platform yang memudahkan pengembang menggunakan Java, .Net, dan Python, sekaligus memenuhi kebutuhan mereka akan performa dan keunggulan C++.
ROOT: Seperangkat kerangka kerja berorientasi objek dengan semua fungsi untuk memproses dan menganalisis data dalam jumlah besar dengan sangat efisien, digunakan oleh CERN.
STLport: adalah versi representatif dari STL
STXXL: Pustaka templat standar untuk kumpulan data tambahan yang besar.
Ultimate++: Kerangka kerja pengembangan aplikasi cepat lintas platform C++
Perpustakaan Templat Windows : Pustaka C++ untuk mengembangkan aplikasi Windows dan komponen UI
Yomm11: Buka multi-metode untuk C++11.
Boost.Asio: Pustaka C++ lintas platform untuk jaringan dan pemrograman I/O tingkat rendah.
libev: Putaran waktu berfitur lengkap dan berkinerja tinggi, sedikit meniru libevent, tetapi tidak lagi memiliki batasan yang sama seperti libevent, dan beberapa bugnya telah diperbaiki.
libevent: perpustakaan pemberitahuan acara
libuv: I/O asinkron lintas platform.
libco: coroutine, perpustakaan IO dasar WeChat yang mendukung 800 juta pengguna online pada saat yang bersamaan. Kuat
libgo: Kerangka kerja konkurensi gaya Golang, pustaka coroutine implementasi C++11
ACE: Perangkat Jaringan Berorientasi Objek C++
Casablanca: C++ REST SDK
cpp-netlib: Kumpulan perpustakaan sumber terbuka untuk pemrograman jaringan tingkat lanjut
libCurl: perpustakaan transfer file multi-protokol
Mongoose: Server web yang sangat ringan
Muduo: Pustaka jaringan non-pemblokiran C++ untuk server multi-thread Linux
net_skeleton: perpustakaan klien/server TCP untuk C/C++
POCO: Pustaka kelas C++ untuk membangun aplikasi berbasis jaringan dan Internet yang dapat berjalan di desktop, server, seluler, dan sistem tertanam.
RakNet: Mesin jaringan C++ sumber terbuka dan lintas platform untuk pengembang game.
Tufao: Kerangka web asinkron yang dibangun di C++ di atas Qt.
WebSocket++: perpustakaan klien/server websocket berdasarkan C++/Boost Aiso
ZeroMQ: Pustaka komunikasi asinkron modular berkecepatan tinggi
f-stack: Tumpukan protokol sumber terbuka Tencent, tumpukan protokol mode pengguna berkinerja tinggi berdasarkan DPDK.
NtyTcp: Tumpukan protokol single-thread, berdasarkan implementasi netmap, DPDK, rawSocket.
LWIP: Versi sederhana implementasi tumpukan protokol TCP/IP untuk platform RAM.
mTCP: Tumpukan protokol TCP/IP ruang pengguna yang sangat skalabel untuk sistem multi-core.
4.4BSD: * Tumpukan protokol nix berasal dari 4.4BSD.
Nginx: Server web HTTP dan proksi terbalik berkinerja tinggi yang juga menyediakan layanan IMAP/POP3/SMTP.
Lighttpd: Perangkat lunak server web sumber terbuka yang aman, cepat, sesuai dengan standar industri, sangat mudah beradaptasi dan dioptimalkan untuk lingkungan konfigurasi tinggi.
Libmicrohttpd: Server web perpustakaan c sederhana di bawah perangkat lunak GNU. API ini sederhana dan cepat.
shttpd: Kerangka server web berbasis luwak.
CivetWeb: Menyediakan server web tertanam C/C++ yang mudah digunakan, kuat, dengan dukungan opsional CGI, SSL, dan Lua.
CppCMS: Kerangka pengembangan web berkinerja tinggi gratis (bukan CMS).
Crow: Kerangka web mikro C++ (terinspirasi oleh Python Flask)
Kore: Server/kerangka web ultra-cepat dan fleksibel untuk aplikasi web yang dikembangkan di C.
libOnion: Pustaka ringan yang membantu Anda membuat server web menggunakan bahasa pemrograman C.
QDjango: Kerangka web yang ditulis dalam C++ dan berdasarkan pada pustaka Qt, mencoba meniru Django API, itulah namanya.
Wt: Pustaka C++ untuk mengembangkan aplikasi web.
Perpustakaan Standar C++: Ini adalah kumpulan kelas dan fungsi yang ditulis dalam bahasa inti dan merupakan bagian dari standar ISO C++ itu sendiri.
Perpustakaan Templat Standar: Perpustakaan Templat Standar, STL
Komite Standar ISO C++ : Komite Standar C++
FMOD: Mesin audio lintas platform yang mudah digunakan dan alat pembuatan game konten audio.
Maximilian: Perpustakaan pemrosesan sinyal digital audio dan musik C++
OpenAL: Pustaka audio sumber terbuka—API audio lintas platform
Opus: codec audio yang sepenuhnya terbuka, bebas royalti, dan sangat serbaguna
Speex: Codec gratis, tidak digunakan lagi oleh Opus
Tonic: Sintesis audio yang mudah digunakan dan efisien di C++
Vorbis: Ogg Vorbis adalah format audio terkompresi universal yang sepenuhnya terbuka, non-eksklusif, dan bebas royalti.
lisequence : Pustaka C++ untuk merepresentasikan dan menganalisis data genetika populasi.
SeqAn: Berfokus pada algoritma dan struktur data untuk analisis urutan data biologis.
Vcflib: Pustaka C++ untuk parsing dan pemrosesan file VCF
Wham: Terapkan pengujian asosiasi langsung ke varian struktur genetik dalam file BAM.
bzip2 : Kompresi data yang sepenuhnya gratis, bebas paten, dan berkualitas tinggi
doboz: perpustakaan kompresi untuk dekompresi cepat
PhysicsFS: Perpustakaan yang menyediakan akses abstrak ke berbagai arsip, terutama digunakan dalam video game. Desainnya sebagian terinspirasi oleh subsistem file Quake3.
KArchive: Pustaka untuk membuat, membaca, menulis, dan memanipulasi arsip file (seperti zip dan tar), yang menyediakan kompresi dan dekompresi data secara transparan menggunakan format gzip melalui serangkaian subkelas QIODevice.
LZ4: Algoritma kompresi yang sangat cepat
LZHAM: Basis data kompresi lossless, rasio kompresi mendekati LZMA, tetapi kecepatan dekompresi jauh lebih cepat.
LZMA: Metode kompresi default dan umum untuk format 7z.
LZMAT: dan pustaka kompresi data lossless real-time yang cepat
Minizip: Perbaikan bug terbaru Zlib, mendukung rentang disk PKWARE, enkripsi AES, dan buffering IO.
Snappy: kompresi dan dekompresi cepat
ZLib: Pustaka kompresi aliran data yang sangat ringkas
ZZIPlib: Menyediakan akses baca ke arsip ZIP.
Boost.Compute: Pustaka komputasi GPU C++ untuk OpenCL
Bolt: Pustaka template C++ yang dioptimalkan untuk GPU
C++React: Pustaka pemrograman reaktif untuk C++11
Intel TBB: Blok Penyusun Intel Threading
Libclsph: Pustaka simulasi fluida SPH yang dipercepat GPU berdasarkan OpenCL
OpenCL: Standar terbuka untuk pemrograman paralel sistem heterogen
OpenMP: API OpenMP
Thrust: pustaka algoritma paralel yang mirip dengan Perpustakaan Templat Standar C++
HPX: Sistem runtime C++ universal untuk aplikasi paralel dan terdistribusi dalam berbagai ukuran
VexCL: Pustaka templat ekspresi vektor C++ untuk OpenCL/CUDA.
Bcrypt: Alat enkripsi file lintas platform yang menjadikan file terenkripsi portabel untuk semua sistem operasi dan prosesor yang didukung.
BeeCrypt: Pustaka grafis enkripsi cepat dengan fungsi canggih dan antarmuka nyaman.
Botan: perpustakaan enkripsi C++
Crypto++ : Pustaka C++ gratis untuk skema enkripsi
GnuPG: Implementasi lengkap dari standar OpenPGP
GnuTLS: Pustaka komunikasi aman yang mengimplementasikan protokol SSL, TLS, dan DTLS
Libgcrypt: Pustaka grafis enkripsi berbasis GnuPG.
Libmcrypt: Aman untuk thread, menyediakan API terpadu.
LibreSSL: Protokol SSL/TLS gratis, cabang dari OpenSSL 2014
LibTomCrypt: Alat enkripsi yang sangat komprehensif, modular, dan portabel
libsodium: Pustaka enkripsi berbasis NaCI yang berpendirian teguh dan mudah digunakan
Nettle: perpustakaan enkripsi yang mendasarinya
OpenSSL: Pustaka enkripsi sumber terbuka yang kuat, komersial, berfitur lengkap.
hiberlite: pemetaan relasional objek C++ untuk Sqlite3
LevelDB: penyimpanan nilai kunci yang cepat
LMDB: penyimpanan nilai kunci tertanam yang sesuai dengan empat elemen dasar database
MySQL++ : Pembungkus C++ yang merangkum C API MySql
RocksDB: Penyimpanan cepat nilai kunci yang disematkan dari Facebook
SQLite : Database relasional yang tertanam sepenuhnya dan berfitur lengkap yang hanya berukuran beberapa ratus KB dan dapat dimasukkan dengan benar ke dalam proyek Anda.
MongoDB: database berdasarkan penyimpanan file terdistribusi
Boost.Test: Tingkatkan perpustakaan pengujian
Catch: Kerangka kerja asli C++ yang sangat bergaya yang hanya berisi file header untuk pengujian unit, pengembangan berbasis pengujian, dan pengembangan berbasis perilaku.
CppUnit: Kerangka pengujian C++ yang di-porting dari JUnit
GoogleTest: Kerangka pengujian Google C++
ig-debugheap: Tumpukan debug multi-platform untuk melacak kesalahan memori
MemTrack: untuk melacak alokasi memori di C++
MicroProfile: Profiler upaya jaringan lintas platform
UnitTest++: kerangka pengujian unit C++ yang ringan
C++ B-Tree: Pustaka templat yang mengimplementasikan wadah memori perintah berdasarkan struktur data B-tree
Hashmaps: Implementasi algoritma tabel hash pengalamatan terbuka di C++
Cocos2d-x: Kerangka kerja lintas platform untuk membuat game 2D, buku interaktif, presentasi, dan aplikasi grafis lainnya.
Grit: Proyek komunitas untuk membangun mesin game gratis untuk game 3D dunia terbuka.
lrrlicht: mesin #D real-time open source berkinerja tinggi yang ditulis dalam bahasa C++
PolyCode: Kerangka kerja sumber terbuka untuk membuat game yang diimplementasikan dalam C++ (dibundel dengan Lua).
bgfx: perpustakaan rendering lintas platform
Kairo: Pustaka grafis 2D yang mendukung banyak perangkat keluaran
Horde3D: Mesin rendering dan animasi 3D kecil
magnum: mesin grafis C++11 dan OpenGL 2D/3D
Ogre 3D: Mesin rendering 3D yang berorientasi adegan, real-time, dan fleksibel yang ditulis dalam C++ (bukan mesin game)
OpenSceneGraph: Perangkat grafis 3D sumber terbuka berkinerja tinggi
Panda3D: Kerangka kerja untuk rendering 3D dan pengembangan game, ditulis dengan Python dan C++.
Skia: Pustaka grafis 2D lengkap untuk menggambar teks, grafik, dan gambar
urho3d: Render lintas platform dan mesin game.
Boost.GIL: Pustaka gambar umum
CImg: Toolkit C++ open source kecil untuk pemrosesan gambar
FreeImage: Perpustakaan sumber terbuka yang mendukung format gambar umum dan format lain yang diperlukan oleh aplikasi multimedia saat ini.
GDCM: Perpustakaan DICOM akar rumput
ITK: Sistem analisis gambar sumber terbuka lintas platform
Magick++: Antarmuka C++ ke program ImageMagick
OpenCV: Perpustakaan visi komputer sumber terbuka
tesseract-ocr: mesin OCR
VIGRA: Pustaka visi komputer C++ tujuan umum untuk analisis gambar
VTK: Sistem perangkat lunak gratis sumber terbuka untuk grafik komputer 3D, pemrosesan gambar, dan visualisasi.
dapatkan teks: getteks GNU
IBM ICU: Pustaka C, C++ dan Java yang menyediakan dukungan Unicode dan globalisasi
libiconv: pengkodean perpustakaan konversi antara pengkodean karakter yang berbeda
beku: Jason mengurai generator untuk C/C++
Jansson: Pustaka bahasa C untuk pengkodean, decoding, dan pemrosesan data Jason
jbson: Pustaka untuk membuat dan mengulangi data BSON, dan dokumen Json di C++14
JeayeSON: Pustaka C++ JSON yang sangat kuat yang hanya berisi file header
JSON++ : pengurai C++ JSON
json-parser : Parser JSON ditulis dalam ANSI C portabel dengan jejak memori yang sangat rendah
json11 : Pustaka JSON mini C++11
rami : Parser C++ JSON yang sangat sederhana
ibjson: Parsing JSON dan perpustakaan pencetakan di C, mudah diintegrasikan dengan model apa pun
libjson: perpustakaan JSON yang ringan
PicoJSON: Parsing dan serialisasi JSON dalam C++, termasuk hanya file header
Qt-Json: Kelas sederhana untuk menguraikan antara data JSON dan hierarki QVariant
QJson : Pustaka berbasis Qt untuk memetakan data JSON ke objek QVariant
RepidJSON: Generator parsing JSON cepat untuk C++, termasuk API gaya SAX dan DOM
Boost.Log: Dirancang sangat modular dan dapat diperluas
easyloggingpp: Pustaka logging C++, hanya berisi satu file header.
Log4cpp: Serangkaian pustaka C++ yang secara fleksibel menambahkan log ke file, log sistem, IDSA, dan tempat lain.
templog : Pustaka C++ ringan yang dapat menambahkan logging ke aplikasi C++ Anda
btsk: Alat peluncur pohon perilaku game
Objek Berkembang: Pustaka komputasi evolusioner ANSI C++ berbasis templat yang dapat membantu Anda menulis algoritme pengoptimalan stokastik Anda sendiri dengan sangat cepat.
Caffe: kerangka jaringan saraf yang cepat
CCV: Perpustakaan visi komputer modern dengan bahasa C sebagai intinya
mlpack: Pustaka pembelajaran mesin C++ yang dapat diperluas
OpenCV: Perpustakaan visi komputer sumber terbuka
Rekomendasi: Pustaka C untuk rekomendasi/saran produk menggunakan pemfilteran kolaboratif.
SHOGUN: Alat pembelajaran mesin Shogun
sofia-ml: Serangkaian algoritme tambahan cepat untuk pembelajaran mesin
Armadillo: Pustaka aljabar linier C++ berkualitas tinggi yang memberikan keseimbangan yang baik antara kecepatan dan kemudahan penggunaan. Sintaksnya sangat mirip dengan MatlAB
blaze: Pustaka matematika C++ berkinerja tinggi untuk algoritma yang padat dan jarang.
ceres-solver: Pustaka C++ dari Google untuk memodelkan dan memecahkan masalah kuadrat terkecil nonlinier yang kompleks dan besar.
CGal: Kumpulan algoritma kumpulan yang efisien dan andal
CML: Pustaka matematika C++ gratis untuk game dan grafik
Eigen: Pustaka header template C++ tingkat tinggi yang mencakup aljabar linier, matriks, operasi vektor, penyelesaian numerik, dan algoritme terkait lainnya.
GMTL: Perpustakaan Template Grafik Matematika adalah seperangkat alat untuk mengimplementasikan grafik dasar secara ekstensif.
GMP: Pustaka AC/C++ untuk penghitungan presisi tinggi, menangani bilangan bulat bertanda, bilangan rasional, dan bilangan floating point.
GStreamer: Pustaka untuk membuat grafik komponen pemrosesan media
Media Streaming LIVE555: Perpustakaan streaming multimedia menggunakan protokol standar terbuka (RTP/RTCP, RTSP, SIP)
libVLC: kerangka media libVLC (VLC SDK).
QtAV: Kerangka pemutaran multimedia berdasarkan Qt dan FFmpeg yang dapat membantu Anda menulis pemutar dengan mudah
SDL: Kontrol langsung sederhana pada lapisan media
SFML: Pustaka multimedia yang cepat dan sederhana
Box2D: Mesin fisika game 2D.
Peluru: Mesin fisika game 3D.
Chipmunk: Pustaka fisika game 2D yang cepat dan ringan
LiquidFun: mesin fisika game 2D
ODE: Open Dynamics Engine - perpustakaan open source berkinerja tinggi untuk mensimulasikan dinamika benda tegar.
ofxBox2D: Pembungkus kerangka kerja sumber terbuka Box2D.
Simbody: Pustaka dinamika/fisika multibenda C++ berperforma tinggi untuk mensimulasikan biomekanik gabungan dan sistem mekanis seperti kendaraan, robot, dan kerangka manusia.
MOOS-Ivp: Seperangkat modul C++ open source yang memberikan otonomi untuk platform robotik, khususnya kendaraan laut otonom.
MRPT: Perangkat Pemrograman Robot Seluler
PCL: Point Cloud Library adalah proyek terbuka independen berskala besar untuk pemrosesan gambar 2D/3D dan point cloud.
Perpustakaan Robotika: Perpustakaan C++ yang berdiri sendiri termasuk dinamika robot, perencanaan gerak, dan kontrol.
RobWork: Kumpulan perpustakaan C++ untuk simulasi dan kontrol sistem robot.
ROS: Sistem Operasi Robot, yang menyediakan perpustakaan dan alat untuk membantu pengembang perangkat lunak membuat aplikasi robot.
ChaiScript: Bahasa skrip tertanam yang mudah digunakan untuk C++.
Lua: Mesin skrip kecil dan cepat untuk file konfigurasi dan skrip aplikasi dasar.
luacxx : C++11 API untuk membuat binding Lua
SWIG : Generator pembungkus/antarmuka yang memungkinkan kode C++ Anda tertaut ke JavaScript, Perl, PHP, Python, Tcl, dan Ruby
V7: Mesin JavaScript tertanam.
V8: Mesin JavaScript cepat Google yang dapat disematkan ke dalam aplikasi C++ apa pun.
Cap'n Proto: Format pertukaran data cepat dan sistem RPC.
sereal : pustaka serialisasi C++11
FlatBuffers: Pustaka serialisasi hemat memori
MessagePack: Pustaka serialisasi biner yang efisien untuk C/C++, seperti JSON
ProtoBuf: Buffer protokol, format pertukaran data Google.
SimpleBinaryEncoding : Pengkodean dan penguraian kode informasi aplikasi dalam format biner untuk aplikasi latensi rendah.
Thrift: IPC/RPC lintas bahasa yang efisien, digunakan dalam C++, Java, Python, PHP, C# dan banyak bahasa lainnya, awalnya dikembangkan oleh Facebook.
libvpx: SDK pengkodean dan decoding VP8/VP9
FFMpeg: Solusi lintas platform yang lengkap untuk merekam, mengonversi streaming video dan audio.
libde265: Buka implementasi codec video h.265.
OpenH264: Kodek H.364 sumber terbuka.
Theora: Format kompresi video sumber terbuka dan gratis.
LibXml++: pengurai xml untuk C++
PugiXML: Parser XML yang ringan, sederhana dan cepat untuk C++ yang mendukung XPath.
RapidXML: Mencoba membuat parser XML tercepat dengan tetap menjaga kemudahan penggunaan, portabilitas, dan kompatibilitas W3C yang wajar.
TinyXML: Parser C++ XML sederhana dan kecil yang dapat dengan mudah diintegrasikan ke dalam proyek lain.
TinyXML2: Parser C++ CML sederhana dan cepat yang dapat dengan mudah diintegrasikan ke dalam proyek lain.
TinyXML++: Antarmuka yang benar-benar baru untuk TinyXML yang memanfaatkan banyak keunggulan C++, templat, pengecualian, dan penanganan pengecualian yang lebih baik.
Xerces-C++: Parser validasi XML yang ditulis dalam subset C++ portabel.
thread_lokal
static_assert
nullptr
tidak, kecuali
tipe deklarasi
constexpr
karakter16_t
char32_t
menyelaraskan
pelurusan
mobil
kelas
bawaan
menghapus
ekspor
eksternal
sebaris
yg mungkin berubah
ukuran
struktur
menggunakan
is_void
adalah_integral
is_floating_point
is_array
is_enum
is_union
adalah_kelas
adalah_fungsi
is_pointer
is_lvalue_reference
is_rvalue_reference
is_member_object_pointer
is_member_function_pointer
is_fundamental
is_aritmatika
is_scalar
adalah_objek
is_compound
is_reference
is_member_pointer
adalah_const
is_volatile
adalah_sepele
is_trivially_dapat disalin
is_standard_layout
is_literal_type
is_kosong
is_polimorfik
is_abstrak
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_constructible
is_trivially_move_constructible
is_nothrow_move_constructible
dapat_ditugaskan
is_trivially_assignable
is_nothrow_assignable
is_copy_assignable
is_trivially_copy_assignable
is_nothrow_copy_assignable
is_move_assignable
is_trivially_move_assignable
is_nothrow_move_assignable
dapat_dihancurkan
is_trivially_destructible
is_nothrow_destructible
has_virtual_destructor
std::array
std::daftar_maju
std::mulai
std::akhir
std::bergerak
Inisialisasi kontainer
menempatkan
std::unordered_map
std::unordered_multimap
std::unordered_set
std :: unordered_multiset
std :: make_tuple
std :: dapatkan
std :: dasi
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 :: vector <bool>>
std :: shared_ptr
std :: weak_ptr
std :: unik_ptr
auto_ptr (usang)
BASIC_REGEX
Sub_match
Match_Results
Fungsi yang memenuhi syarat CV
kualifikasi kutipan
std :: function
std :: bind
std :: bad_function_call
mem_fn
ketik alias
Inisialisasi anggota kelas
fungsi
Delegasi Konstruktor
Warisan konstruktor
pindahkan konstruktor
Pindahkan operator penugasan
Kurung sudut ">"
Template alias
template eksternal
Template Variadik
Parameter template default
std :: Atomic <Bool>
std :: atom <char>
std :: atomik <menandatangani char>
std :: atom <unsigned char>
std :: atomik <sprord>
std :: atom <unsigned short>
std :: atomik <It>
std :: atom <unsigned int>
std :: Atomic <long>
std :: atom <unsigned long>
std :: atom <long long>
std :: atom <unsigned long long>
Std :: Atomic <CAR8_T>
Std :: Atomic <CAR16_T>
Std :: Atomic <CAR32_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 :: thread
std :: mutex
std :: lock
std :: call_once
std :: atom
std :: cond_ition_variable
std :: async
tidak stabil
std :: masa depan
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
Sintaks: __pragma (string literal)
_ Operator Pragma
_cplusplus makro
untuk loop untuk (x: range)
Alignof
Alignas
std :: Alignment_of
std :: Aligned_Storage
std :: max_align_t
std :: align
kata kunci eksplisit
Sintaks: static_assert (ekspresi konstan, "string prompt")
menegaskan statis
batas numerik
string mentah
Lacak Sintaks Jenis Pengembalian
Sintaks teman yang diperpanjang
Integer diperpanjang
Asosiasi Tidak Terbatas
inline namespace
literal yang ditentukan pengguna
Enum yang sangat diketik
perangkat acak
std :: ref dan std :: cref
Constexpr
Ekspresi Lambda
nullptr
Mencegah jenis penyempitan
Daftar Inisialisasi —— Daftar Inisializer
initializer_list (sebagai parameter input)
Sintaks dan semantik inisialisasi terpadu
POLONG
panjang sekali
Pindahkan semantik
Referensi RValue
Fitur C99
Aturan Sfinae Generalized
Periksa apakah jenisnya adalah std :: nullptr_t
is_final (periksa apakah jenisnya adalah jenis kelas akhir)
Exchange (ganti parameter aktual dengan nilai baru dan kembalikan nilai sebelumnya)
Integer_Sequence (implementasi urutan integer kompilasi-waktu)
rbegin (mengembalikan iterator terbalik yang menunjuk ke wadah atau array)
crbegin (mengembalikan iterator terbalik yang menunjuk ke wadah atau array)
Rend (mengembalikan iterator ekor terbalik dari wadah atau array)
Crend (mengembalikan iterator ekor terbalik dari wadah atau array)
make_reverse_iterator (buat std :: reverse_iterator dengan jenis yang disimpulkan dari argumen)
Mulai (mengembalikan iterator yang menunjuk ke awal wadah atau array)
cbegin (mengembalikan iterator yang menunjuk ke awal wadah atau array)
Akhir (mengembalikan iterator yang menunjuk ke ujung wadah atau array)
cend (mengembalikan iterator yang menunjuk ke ujung wadah atau array)
rbegin (mengembalikan iterator terbalik yang menunjuk ke wadah atau array)
crbegin (mengembalikan iterator terbalik yang menunjuk ke wadah atau array)
Rend (mengembalikan iterator ekor terbalik dari wadah atau array)
Crend (mengembalikan iterator ekor terbalik dari wadah atau array)
daftar
byte (tipe byte)
is_agregate (periksa apakah jenisnya adalah jenis agregat)
is_swappable_with (memeriksa apakah objek jenis dapat ditukar dengan objek dari jenis yang sama atau jenis yang berbeda)
is_swappable (memeriksa apakah suatu objek jenis dapat ditukar dengan objek dari jenis yang sama atau jenis yang berbeda)
is_nothrow_swappable_with (memeriksa apakah objek jenis dapat ditukar dengan objek dari jenis yang sama atau jenis yang berbeda)
is_nothrow_swappable (memeriksa apakah suatu objek jenis dapat ditukar dengan objek dari tipe yang sama atau jenis yang berbeda)
is_invocable (periksa apakah jenisnya dapat dipanggil dengan jenis argumen yang diberikan (seperti halnya std :: invoke))
is_invocable_r (memeriksa apakah jenisnya dapat dipanggil dengan jenis argumen yang diberikan (seperti halnya std :: invoke))
is_nothrow_invocable (periksa apakah jenisnya dapat dipanggil dengan tipe argumen yang diberikan (seperti halnya std :: invoke))
is_nothrow_invocable_r (periksa apakah jenisnya dapat dipanggil dengan tipe argumen yang diberikan (seperti halnya std :: invoke))
Invoke_result (menyimpulkan jenis hasil memanggil objek yang dapat dipanggil dengan satu set parameter aktual)
void_t (Templat Parameter Variabel)
Konjungsi (logis dan meta-fungsi parameter variabel)
Disjungsi (logis atau meta-fungsi dengan parameter variabel)
ndisjunctionEgation (fungsi non-elemen logis)
integral_constant (konstanta waktu kompilasi dari tipe yang ditentukan dengan nilai yang ditentukan)
as_const (dapatkan referensi const ke parameternya)
Terapkan (panggil fungsi dengan tuple argumen)
make_from_tuple (Membangun objek dari tuple argumen)
opsional (mungkin atau mungkin tidak memegang pembungkus untuk objek)
make_optional (Buat objek opsional)
std :: swap (std :: opsional) (std khusus :: algoritma swap)
std :: hash <std :: opsional> (algoritma hash std :: hash khusus)
nullopt_t (indikator tipe opsional dengan keadaan tidak diinisialisasi)
Bad_optional_access (pengecualian menunjukkan akses terdaftar ke opsional tanpa nilai)
nullopt (objek tipe nullopt_t)
Varian (Tipe-Safe Identifikasi Union)
Kunjungi (panggil objek fungsi yang disediakan dengan setiap argumen yang dipegang oleh satu atau lebih varian)
Holds_alternative (memeriksa apakah varian saat ini memegang jenis yang diberikan)
std :: get (std :: varian) (baca nilai varian dengan indeks atau jenis yang diberikan (jika jenisnya unik), lempar pengecualian pada kesalahan)
get_if (dengan indeks atau jenis yang diberikan (jika unik), dapatkan pointer ke nilai varian runcing, kembalikan pointer nol pada kesalahan)
std :: swap (std :: varian) (khusus std :: algoritma swap)
monostate (jenis placeholder yang digunakan sebagai opsi opsional pertama dari varian yang tidak dapat dibangun tidak disusun)
bad_variant_access (pengecualian dilemparkan saat mengakses nilai varian secara ilegal)
varian_size (Dapatkan ukuran daftar opsi varian pada waktu kompilasi)
varian_size_v (Dapatkan ukuran daftar opsi varian pada waktu kompilasi)
varian_alternative (memperoleh jenis opsional yang ditentukan oleh subskripnya pada waktu kompilasi)
varian_alternative_t (Mendapat jenis opsional yang ditentukan oleh subskripnya pada waktu kompilasi)
std :: hash <std :: varian> (algoritma hash std :: hash khusus)
varian_npos (subskrip varian ilegal)
Apa pun (objek yang dapat menampung jenis apa pun yang dapat dikonstruksikan (CopyConstructible) Type)
std :: swap (std :: any) (algoritma swap khusus std :: swap)
any_cast (jenis akses aman ke objek yang terkandung)
make_any (Buat objek apa pun)
bad_any_cast (pengecualian dilemparkan oleh any_cast yang mengembalikan nilai saat jenis tidak cocok)
TO_CHARS (Konversi Integer atau Nilai Titik Mengambang ke Gambar Urutan Karakter)
from_chars (konversi urutan karakter ke integer atau nilai titik mengambang)
chars_format (tentukan format yang digunakan oleh std :: to_chars dan std :: from_chars)
kosong (periksa apakah wadahnya kosong)
data (mendapatkan pointer ke array yang mendasarinya)
insert_or_assign (masukkan elemen, atau tetapkan ke elemen saat ini jika kunci sudah ada)
try_emplace (jika kunci tidak ada, masukkan di tempat, jika kunci ada, tidak melakukan apa -apa)
Ekstrak (Lepaskan simpul dari wadah lain)
Gabungkan (bergabunglah dengan node dari wadah lain)
insert_or_assign (masukkan elemen, atau tetapkan ke elemen saat ini jika kunci sudah ada)
try_emplace (jika kunci tidak ada, masukkan di tempat, jika kunci ada, tidak melakukan apa -apa)
Ekstrak (Lepaskan simpul dari wadah lain)
Gabungkan (bergabunglah dengan node dari wadah lain)
<h5 id = "User-content-cpp_headfile_initializer_list" tabIndex = "-1" class = "head