Concepts」というセッションがあるらしいので内容を予想してみる。Overloadを解説していこうと思います。Overloadを表現しています。コンセプトベース線形代数ライブラリの設計を考えてみましょう。y;};コンセプトベースなライブラリの場合には、これをアダプト可能なインタフェースとしてのベクトルクラスを定義します。laさらに、ベクトルに対するアルゴリズムを、このTraitsで設計されたベクトルクラスを通して定義します。laこうすることによって、vector_traitsにアダプトされた全てのベクトルクラスに対して、同じアルゴリズムを適用することができるようになります。u);これによって、他の線形代数のライブラリのベクトルクラス、どこにでもあるPointクラスといったもの全てに対して、同じアルゴリズムを適用できるようになり、アルゴリズムは誰か一人が書けばいい、というような他のライブラリまでをも視野に入れた汎用的な設計になるのです。演算子の定義や、(ADLによって)同名の関数が起こり得るケース、コンパイルエラーメッセージの改善といったケースにおいて、vector_traitsにアダプトされた型でオーバーロードしたい、という要求が稀によく出てきます。いった要求のために、アダプトされているかどうかを判定するメタ関数を別途用意し、特殊化する際にはvector_traitsと判定用のメタ関数の両方を特殊化してもらうガイドラインにしておくと後々便利です。Overloadの例として出力ストリームを追加しています。std::endl;これが、近年Boostで取り入れられているコンセプトベースライブラリの設計です。以下、本エントリの完全なソースコードです。Tumblr広告を非表示にする関連記事2011-08-26部分特殊化には、テンプレートパラメータ自身を使わなければならないBoost.GeometryのFusionアダプトを作ってるときに嵌った問題。v1.2DateTimeの各primitiveを抽出するextract関数を追加しました。BoostConの日本語ページを作成中。Librariesコントリビュータ。boostjp/cpprefjpサイトコアメンバ。blogBoost.Multi-Index作者ブログBoost.Asio作者ブログBoost.Geometry作者ブログBoost.Thread作者ブログboost.develWandboxはてなブログをはじめよう!faith_and_braveさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。