doxygenでC++の概念を文書化する便利な方法はありますか?私はthis in the boost documentationのような書類を持っていたいと思います。doxygenを使用してC++の概念を文書化していますか?
答えて
あなたができることは、コンセプトというカスタムタグを定義することです。コンセプトは、あなたが記述したとおりに使用できます。これのexampleは、Doxygenの中のようなものエイリアス・メカニズムを使用することです:
ALIASES + = "CON = \ xrefitem詐欺\" コンセプト\ "\ "の概念\""
\tparam
を使用して、template parametersにコメント/ドキュメントすることができます。
このテンプレートパラメータをインスタンス化するクラスを概念xyzで実装する必要があると言うには、 '\ tparam'を使用できます。しかし、どのように概念自体を文書化しますか? – proto
私はあなたが探しているものを理解しているか分かりません。 xyzのコンセプトはそうだと言っているが、それはおそらくコンセプト自体のドキュメントを書いておくのに最適な場所ではないと言っている。コンセプトの実際のクラス/構造体を持っている場合は、他のクラスと同じようにドキュメントを書くことができます – Attila
C++を使ってコンセプトを指定する方法がないため(まだ)、クラス(またはファイル)の概念を説明する。それを実装するクラスだけがあります。私は、これを回避するための確立された方法があり、私のdoxygen出力のコンセプトのドキュメンテーションを含んでいるのかどうか疑問に思いました。 – proto
私は現在、別のマニュアルページを使用します概念を文書化し、\section
と\subsection
でグループ化します。私は\ref
でそれらにリンクすることができます。これは、与えたリンクのようにテーブルの概念を記述している限り機能しますが、残念ながら単一のセクションへのリンクは有効になりません。
また、型モデルの概念のリストを作成する別名もあります。
+1は私のセクションを参照するのに役立ちました。 –
Doxygenと苦労した後、私は最終的に次のような解決策に出た。
あなたの概念のためのグループを定義します。グループは潜在的に多くの親グループを示しながらページは、(上から木の下に)そのサブページを示す必要がありますので、ページを使用すると、その適切ではありません。これは、可能:
- を変更することなく、いくつかの概念をエンティティのリンク親概念自体(概念の改良/一般)
- を変更することなく、1つ(またはそれ以上)の親概念(複数可)の概念を追加しますコンセプト自体(例えば、特定の概念を実装するライブラリにクラスを追加するとき)
例
/*[email protected] measurement_functor_concepts Measurement function objects * @ingroup generalconcepts * @{ * @par Description * blablabla * * @par Notations * Let @c F be the type of the function object, @c f an instance. * * @par Valid Expressions * - @c f function object is ... * - <b>f.result()</b> returns ... * @} */
定義
ALIASES += concept{1}="@ingroup \1\[email protected] Implemented concepts:\[email protected] \1"
コマンド:
- は、概念を定義するグループにエンティティが含まれています。エンティティは、(エンティティが、いくつかの中に表示されることがあり概念のドキュメントに表示されます一つの引数を持つカスタムコマンド
concept
グループ) - は、実装された概念へのリンクを提供する
Implemented concepts
の段落を追加します。
- は、概念を定義するグループにエンティティが含まれています。エンティティは、(エンティティが、いくつかの中に表示されることがあり概念のドキュメントに表示されます一つの引数を持つカスタムコマンド
は、特定のクラス/構造体は、概念を実装していることを示しています
//[email protected] Does things... //[email protected]{measurement_functor_concepts} template <class T> struct my_struct: public std::unary_function<T, void> {};
私はブースト有効な式のために(素敵なテーブルのような素敵なドキュメントを生成する方法を見つけることができませんでした、など)が、少なくともドキュメントのこの組織は物事を適切に分離します。
a)のライブラリをチェックブーストコンセプトのドキュメントを見てください:
は、私はあなたが以下の点を考慮示唆しています。このドキュメントでは、コードで使用できるクラスを作成して、タイプで実際に定義したいコンセプトの要件を満たしていることを確認する方法を示します。
template<typename T>
my_class{
MyConcept(T); // provokes compile error if T does not match concept
T m_t;
};
FYIコンセプト・チェックのクラスを作成する際に使用される要素とと概念liteの提案との1対1の対応があります:あなたはこのようにそれを使用しています。したがって、コンセプトライトが実際に動作しているときは、簡単に移行する必要があります。
b)DOxygenを使用してMyConcept検査クラスを文書化してください。
C)MyConcept
Cを参照するmy_classマニュアルの使用Doxygenの/のTParam)だから今、あなたはあなたが求めている正確に何を持っています!あなたのコンセプトのための別のページと、そのコンセプトを必要とするすべてのクラスからそれを参照する能力。
- 1. 内部クラスを文書化していないDoxygen(C#)
- 2. 変数はDoxygenを使用して文書化されていません
- 3. Doxygenを使用してMACRO C++に送信される関数を文書化
- 4. Doxygenでtxtファイルを文書化しています
- 5. doxygenで設定マクロを文書化してください
- 6. C++でTableDrivenTestsの概念を使用できますか?
- 7. Doxygen C++クラス演算子の文書化
- 8. モニターの概念を使用してセマフォーを実装してください
- 9. Doxygenが私のObjective-CコードをC++のように文書化します
- 10. 移転の概念は何を意味していますか?
- 11. XMLはOOPの概念でインターフェイスをサポートしていますか?
- 12. MongoDBは複合キーの概念をサポートしていますか?
- 13. C#3.0は部分プロパティの概念をサポートしていますか?
- 14. Doxygenを使ってRubyコードを文書化するには?
- 15. doxygenを使ってC++テンプレートとテンプレートメタ関数を文書化するには?
- 16. doxygenを使ってマークダウンファイルとして文書を生成する
- 17. 誰かがSphinxを使ってC++プロジェクトを文書化していますか?
- 18. C++の概念:CRTP
- 19. Cポインタの概念
- 20. C++スレッドの概念
- 21. C++の概念ループ
- 22. Doxygen文書化されていない文字列の値
- 23. Doxygenを使用する場合の構造化文書
- 24. C++概念ヘルプ、ポインタ
- 25. 角度のデータ辞書概念の構文は正しいかどうか?
- 26. 新しいアーキテクチャの概念
- 27. sqlite概念からcoredata概念へ?
- 28. C#のプライベートクラスの概念
- 29. C#のベンチマークの概念?
- 30. doxygenのクラスを文書化するためのファイルまたはクラスを使用しますか?
申し訳ありませんが、エイリアスの定義がどのように役立つかは明白ではありません概念を文書化する際に使用します。おそらく例を挙げて、この答えを広げることができますか? –