Saya ingin tahu - apakah pemrograman generik (GP) banyak digunakan dalam industri?
Ini benar-benar sangat tergantung pada konteks tim dan proyek.
Misalnya, dalam permainan video, seringkali kodenya "paling sederhana" yang mungkin (dan bahkan kadang-kadang terlalu sederhana) tetapi dalam arsitektur besar. Itu karena pengembang game memiliki banyak masalah untuk diperbaiki dan tidak ingin repot dengan pemrograman meta (itu adalah bahasa yang terpisah sangat abstrak dan sulit dipahami di dalam C ++).
Pada saat yang sama, penggunaan dasar templat sudah umum bahkan di toko-toko itu dan Anda dapat melihat beberapa optimasi berbasis templat di beberapa fungsi yang sangat spesifik dari beberapa engine.
Tetapi dalam game dev, kebanyakan orang hanya akan menghindari metaprogramming.
Sekarang, di sisi lain yang ekstrim, beberapa aplikasi pemrosesan yang sangat kompleks atau berat, yang tidak umum, memerlukan beberapa jenis pemrograman yang berat karena kinerja dan fleksibilitas (pada waktu kompilasi) persyaratan yang tidak umum. Saya sedang mengerjakan satu sekarang.
Ini tidak umum tetapi ada dan beberapa domain niche (dalam beberapa konteks tertanam ilmiah atau angka-angka) memang membutuhkan orang yang tahu banyak tentang metaprogramming atau ingin belajar.
Di tengah, kebanyakan orang hanya akan menggunakan program-meta sebagai "klien", bukan sebagai "desainer". Sebagian besar kode meta-pemrograman dibundel dalam pustaka karena pustaka adalah alat untuk kode dan apa yang lebih baik dari pustaka yang dapat beradaptasi dengan tipe khusus yang telah Anda kerjakan sampai sekarang?
Boost (http://boost.org) adalah seperangkat perpustakaan, beberapa terbuat dari metaprogramming black magic yang berat, dan digunakan di banyak toko C ++ sebagai "STL ++", perpanjangan dari STL (dan memang demikian). Tidak setiap toko menggunakannya karena beberapa alasan, seperti kompatibilitas kompiler (beberapa dorongan perpustakaan dapat membuat kompiler Anda memaafkan untuk setiap kali dia menyakiti perasaan Anda ...) dan lebih sering karena beberapa pengembang tidak suka tidak dapat memahami bagaimana alat bekerja di dalam (cobalah untuk memahami Boost.Spirit ...)
Apa pun perusahaan tempat Anda akan bekerja, sebagian akan menggunakan paradigma ini, sebagian akan sedikit atau tidak sama sekali atau bahkan melarangnya.
Tidak ada konsensus karena tidak ada yang memiliki kebutuhan, konteks atau tim yang sama.
Tapi tetap, jelas, itu digunakan. Mungkin bertanya siapa yang menggunakan dorongan pada milis mereka untuk memiliki lebih banyak contoh di dunia nyata?