tag:crieit.net,2005:https://crieit.net/users/jyupiteru/feed
jupiの投稿 - Crieit
Crieitでユーザーjupiによる最近の投稿
2020-11-25T17:55:46+09:00
https://crieit.net/users/jyupiteru/feed
tag:crieit.net,2005:PublicArticle/16237
2020-11-25T17:55:46+09:00
2020-11-25T17:55:46+09:00
https://crieit.net/posts/c-c-doxygen
c,c++のコメントメモ(doxygenを使用)
<p>この記事ははてなをメインにQrunch(閉鎖済み)、Crieitにクロス投稿しています</p>
<h4 id="環境"><a href="#%E7%92%B0%E5%A2%83">環境</a></h4>
<p>VisualStudio2017</p>
<p>VisualStudio2019</p>
<p>VSCode</p>
<h4 id="Doxygenで生成したドキュメントのどこで表示されるかわからない"><a href="#Doxygen%E3%81%A7%E7%94%9F%E6%88%90%E3%81%97%E3%81%9F%E3%83%89%E3%82%AD%E3%83%A5%E3%83%A1%E3%83%B3%E3%83%88%E3%81%AE%E3%81%A9%E3%81%93%E3%81%A7%E8%A1%A8%E7%A4%BA%E3%81%95%E3%82%8C%E3%82%8B%E3%81%8B%E3%82%8F%E3%81%8B%E3%82%89%E3%81%AA%E3%81%84">Doxygenで生成したドキュメントのどこで表示されるかわからない</a></h4>
<p>変数等の@briefは詳解の前の簡単な説明と詳解の後のところに表示。<br />
@detailsは詳解のところに表示される。</p>
<h4 id="コメントの書く場所をどうすべきか"><a href="#%E3%82%B3%E3%83%A1%E3%83%B3%E3%83%88%E3%81%AE%E6%9B%B8%E3%81%8F%E5%A0%B4%E6%89%80%E3%82%92%E3%81%A9%E3%81%86%E3%81%99%E3%81%B9%E3%81%8D%E3%81%8B">コメントの書く場所をどうすべきか</a></h4>
<p>VisualStudioではcppに書いたときInteliSenseが機能しなかったので<br />
ヘッダーに書くのが良さそうです。<br />
ただテンプレート関数をクラス内で多用するとコメントと合わせかなり行数が増えるので注意が必要です。<br />
<del>どうにかしたい・・・</del></p>
<h4 id="前置簡易コメント"><a href="#%E5%89%8D%E7%BD%AE%E7%B0%A1%E6%98%93%E3%82%B3%E3%83%A1%E3%83%B3%E3%83%88">前置簡易コメント</a></h4>
<pre><code>/// コメント
/// @detailsと同じ扱いに
int i;
/// コメント
</code></pre>
<p>このコメントはvisualstudioで使うとxmlコメントの書き方に被るみたいで<br />
InteliSense(変数や関数を選んだときに表示されるやつ)に表示されません。<br />
なので以下を使用しました。</p>
<pre><code>//! コメント
//!@brief 説明
</code></pre>
<h4 id="後置コメント"><a href="#%E5%BE%8C%E7%BD%AE%E3%82%B3%E3%83%A1%E3%83%B3%E3%83%88">後置コメント</a></h4>
<pre><code>int a;///<コメント
</code></pre>
<p>これもvisualstudioでは「XMLコメントに無効なXMLが含まれます」と表示されるので</p>
<pre><code>int a//!<コメント
</code></pre>
<p>を使用しました。<br />
あと、Visual studioのc++用のxmlコメントは拡張機能で使用可能みたいです。</p>
<p><a target="_blank" rel="nofollow noopener" href="http://cercopes-z.com/Doxygen/list-command-dxy.html">[VisualStudio]C++でもXMLドキュメントコメントを自動挿入したい!!</a></p>
<h4 id="各ファイルのコメント"><a href="#%E5%90%84%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AE%E3%82%B3%E3%83%A1%E3%83%B3%E3%83%88">各ファイルのコメント</a></h4>
<p>一番始めにいります。<br />
最低限この2行あれば十分っぽいです。</p>
<pre><code>/*!
@file 何も書かなくてもいい
@brief このファイルの説明を書く ファイル一覧のところに出力されます
*/
</code></pre>
<h4 id="変数、マクロのコメント"><a href="#%E5%A4%89%E6%95%B0%E3%80%81%E3%83%9E%E3%82%AF%E3%83%AD%E3%81%AE%E3%82%B3%E3%83%A1%E3%83%B3%E3%83%88">変数、マクロのコメント</a></h4>
<pre><code>int hp;//!@brief コメント
//!@brief コメント
//!@details コメント
int mp;
</code></pre>
<p>基本後置コメントがスマートでいいのですが複数行に対応してないみたいなので<br />
複数行に書く場合は前置のほうがいいです。</p>
<h4 id="関数のコメント"><a href="#%E9%96%A2%E6%95%B0%E3%81%AE%E3%82%B3%E3%83%A1%E3%83%B3%E3%83%88">関数のコメント</a></h4>
<pre><code>/*!
@brief 関数の要約
@param 引数名 引数の詳細引数の個数分かく
@return 戻り値の詳細
@details 関数の細かい説明
*/
</code></pre>
<h4 id="クラス、列挙体へのコメント"><a href="#%E3%82%AF%E3%83%A9%E3%82%B9%E3%80%81%E5%88%97%E6%8C%99%E4%BD%93%E3%81%B8%E3%81%AE%E3%82%B3%E3%83%A1%E3%83%B3%E3%83%88">クラス、列挙体へのコメント</a></h4>
<pre><code>/*!
@brief 要約 クラスなら一覧にも書かれます
@details 細かい説明
*/
</code></pre>
<h4 id="便利なコメント"><a href="#%E4%BE%BF%E5%88%A9%E3%81%AA%E3%82%B3%E3%83%A1%E3%83%B3%E3%83%88">便利なコメント</a></h4>
<div class="table-responsive"><table>
<thead>
<tr>
<th>@todo</th>
<th>書くとTODOリストが自動で作成されめっちゃ便利!</th>
</tr>
</thead>
<tbody>
<tr>
<td>@see</td>
<td>参照したい関数、変数を書ける</td>
</tr>
<tr>
<td>@note</td>
<td>メモを書ける</td>
</tr>
<tr>
<td>@n</td>
<td>文の途中で改行してくれます。</td>
</tr>
<tr>
<td>@retval</td>
<td>@returnの代わりに使用 戻り値ごとの細かい説明を書ける。</td>
</tr>
</tbody>
</table></div>
<h4 id="参考にしたサイト"><a href="#%E5%8F%82%E8%80%83%E3%81%AB%E3%81%97%E3%81%9F%E3%82%B5%E3%82%A4%E3%83%88">参考にしたサイト</a></h4>
<p><a target="_blank" rel="nofollow noopener" href="http://cercopes-z.com/Doxygen/list-command-dxy.html">Doxygen コマンド一覧</a><br />
<a target="_blank" rel="nofollow noopener" href="https://teratail.com/questions/69989">C++で///を使ったコメント - teratail</a></p>
<h4 id="VSCodeの拡張機能(2020-11-25追記)"><a href="#VSCode%E3%81%AE%E6%8B%A1%E5%BC%B5%E6%A9%9F%E8%83%BD%282020-11-25%E8%BF%BD%E8%A8%98%29">VSCodeの拡張機能(2020-11-25追記)</a></h4>
<p>VSCodeにはDoxygen形式のコメントを自動生成してくれるとても便利な拡張機能があります<br />
<a target="_blank" rel="nofollow noopener" href="https://marketplace.visualstudio.com/items?itemName=cschlosser.doxdocgen">Doxygen Documentation Generator</a><br />
関数やクラスの前、ファイルの先頭で/**と改行だけで必要な内容を生成できるのでとてもおすすめです。</p>
jupi