Saya tahu ini sangat terlambat untuk pesta, tetapi waktu berubah dan jawaban tetap ada. C ++ 11 memiliki perubahan besar, banyak di antaranya adalah untuk meningkatkan kinerja C ++ dan pustaka standar. Tampaknya mereka yang tidak menggunakan STL atau Boost, cenderung tidak mengikuti standar baru juga, meninggalkan solusi home spun yang tidak memiliki peningkatan penting, tentu saja hal ini tidak selalu terjadi.
Saya telah menggunakan STL pada setiap proyek dari pertengahan 90-an hingga hari ini, dengan pengecualian waktu yang singkat di EA. Saya pikir sisi anti STL memiliki beberapa alasan yang sedikit rasional untuk tidak menggunakannya. Sebagian besar sudah hilang. Alokasi kustom adalah salah satu solusi, menggunakan cadangan adalah solusi lain, dan tidak melewatkan nilai berdasarkan nilai adalah solusi ketiga, tetapi ini cukup sederhana dan setiap programmer harus mengetahuinya. Lebih penting lagi adalah penggunaan algoritma. Penulis kompiler tahu persis apa yang for_each () lakukan dan dapat mengoptimalkan kode. Itu tidak dapat terjadi dengan loop digulung rumah. for_each () pada objek const bahkan lebih baik. Microsoft mengoptimalkan for_each dalam banyak cara termasuk membuat serial. Mereka juga memiliki perpustakaan AMP yang memiliki parallel_for_each (). Jika Anda mendapat kesempatan, bicarakan dengan insinyur penyusun tentang ini. Kompiler konsol akan mengoptimalkan apa yang akan digunakan, jadi sa sedikit masalah ayam dan telur. Microsoft akan sangat berat dengan C ++ 11 dan XBox berikutnya tidak akan berbeda. Saya tidak tahu tentang PS4, kami belum mendapatkannya.
Alokasi kustom adalah salah satu cara untuk menangani masalah memori, tetapi opsi lain (yang sering diabaikan) adalah menggunakan kelas baru dan menghapus. Peningkatan kinerja besar bisa didapat dengan cara ini.
Gagasan bahwa Boost dan STL memiliki pandangan sempit dalam memecahkan masalah adalah kegilaan murni. Saya kagum pada berapa banyak hal dalam STL dan Boost yang dapat disesuaikan melalui sifat dan kebijakan. Cari perbandingan independent case case sebagai contoh.
Mengenai waktu tautan yang lama dan kode mengasapi, templat eksternal yang baru akan membantu dalam hal ini. Secara umum saya menemukan waktu kompilasi yang panjang berasal dari kopling berlebih dan penyalahgunaan pch.
Alasan paling kuat untuk menggunakan STL di atas tenunan sendiri adalah ada jutaan orang yang dapat membantu Anda dengan STL. Seperti biasa, jangan optimalkan secara prematur dan uji, uji, uji.