Fakta sederhananya adalah bahwa banyak, jika tidak sebagian besar, pengguna C ++ sulit memahami yang vector
lebih baik daripada malloc
dan free
, sehingga jumlah yang tidak hanya dapat menghargai tetapi menerapkan metaprogramming template canggih tidak terlalu tinggi. Ini menyiratkan bahwa bahkan jika itu baik untuk 90% situasi, Anda akan melihatnya jauh lebih sedikit, hanya karena orang tidak tahu tentang hal itu atau bagaimana menggunakannya.
Namun, fungsi virtual memang memiliki kelebihan, yaitu, fungsi virtual jauh lebih mudah digunakan daripada CRTP. Templat C ++ terkenal karena menyebalkan tentang apa saja dan segalanya, dan model inklusi mengisap bola.
Namun, mereka [fungsi virtual] jelas lebih lambat dan kurang kuat. Misalnya, saya sekarang sedang menulis kode menggunakan CRTP, di mana Anda mewarisi kelebihan operator untuk digunakan dengan templat ekspresi. Tidak mungkin fungsi virtual dapat membuatnya bekerja.