私はテンプレート付きのクラスを見て、それを書いた人がテンプレートを使用した理由を考えるのは難しいです。なぜブーストはひどくテンプレート化されていますか?
たとえば、mutexクラス。すべてのミューテックスのコンセプトはテンプレートとして実装され、そのコンセプトに一致するインタフェースを持つ基本クラスや抽象クラスを単純に作成することができます。
編集後の回答:私は仮想関数のコストについて考えましたが、時には理解を深めるためにパフォーマンスペナルティを払う価値はありませんか?私は時には(特にブーストで)、テンプレートを誤解した結果、テンプレート化されたコードを理解し、コンパイルエラーを解読することが本当に難しいことを意味します。
この人には良い質問です:http://stackoverflow.com/users/5597/anthony-williams(boost.threadの著者):p –
C++コミュニティの主な哲学は、あなたは "尋ねる。 Boostプロジェクトは、STLと同様に、テンプレートを使用してすべてのライブラリを設計することによって、その理念に従うよう努めています。あなたが言及したように、しかし、コストがあります:時には苦しむ理解。あなたがより簡単に理解できるライブラリが必要な場合は、Qtライブラリを見てください。 Boostがやっていることの多くが含まれています。私の意見では、Qtの設計は大規模なC++開発を可能にしますが、Boostは完全に欠けています。 –