2011-05-31 52 views
1

私の問題は次のとおりです。私はコンストラクタのための同じパラメータを持つファイルのセットを持っています。私は各ファイルで使用されるマクロの中にコンストラクタのパラメータを定義しました。たとえば、次のコンストラクタ:マクロ内のDoxygenコメント

Planar(BSPF_IMAGE_FORMAT_STD_CONST_PARAMS_3); 

は平面コンストラクタのパラメータを拡張BSPF_IMAGE_FORMAT_STD_CONST_PARAMS_3マクロを使用しています。

#define BSPF_IMAGE_FORMAT_STD_CONST_PARAMS_3        \ 
    size_t height,               \ 
    size_t width,                \ 
    size_t stride,               \ 
    size_t effectiveChannels,             \ 
    BSPF_UTILS::bspf_8u* buffer 

私の問題は次のようである:私はすべてのために同じDoxygenのドキュメントを持つようにしたいです同じマクロを使用するコンストラクタ、つまり同じマクロを共有しているコンストラクタのドキュメントを1回書くだけです)。

どうすればいいですか?

マクロ(パラメーターのコンストラクターの名前)を書き込もうとしましたが、Doxygenが改行なしでマクロを展開するため、動作しません。

これを行うには良い方法がありますか?

ご回答ありがとうございます。

答えて

2

マクロは常に改行なしで展開されます。これはdoxygenとは関係ありません。しかし、解決策はrelativly単純です:

は、余分なテキストファイル("BSPF_IMAGE_FORMAT_STD_CONST_PARAMS_3.txt"または類似)を持っていることへの具体的なコメントは、定義が含まれている、余分な

#define BSPF_IMAGE_FORMAT_STD_CONST_PARAMS_3_INCLUDE \ 
    "BSPF_IMAGE_FORMAT_STD_CONST_PARAMS_3.txt" 

、最終的には、以下の方法でそれを使用します:

// your .cpp 
#include BSPF_IMAGE_FORMAT_STD_CONST_PARAMS_3_INCLUDE 
Planaer::Planar(BSPF_IMAGE_FORMAT_STD_CONST_PARAMS_3){ 
} 

.includeは、.txtの内容をコピーして.cppに貼り付けるだけで、そのままです。

+0

あなたの答えをありがとう、それは悪い考えではありません!プリプロセッサについて、私はDoxygenプリプロセッサについて話していました。これは、複数行のマクロを1行に展開します。 – benlaug

+0

複数行マクロのようなものはありません。そのため、複数行のマクロのように見えるものを書くときには、行末にバックスラッシュを置く必要があります。そのバックスラッシュは基本的にプリプロセッサに後続の行末が実際にはEOLではないことを伝えます。そのスペース。 –

+0

2番目の考えでは、それはスペースでもありません。プリプロセッサはまるでそれがまったく存在しないかのようにそれを食べます。これを自分でテストすることができます。コードの重要な部分の前に次のC++スタイルのコメントを配置します。 //コードの次の行をコメントアウト\ –

関連する問題