【コメント】doxygen【コンソメ】

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
無いので建てた

公式
http://www.doxygen.jp/
2デフォルトの名無しさん:2008/05/30(金) 21:01:14
このスレはアイちゃんがうんたらかんたら
3デフォルトの名無しさん:2008/05/30(金) 23:18:24
標準のスタイルシートも見飽きてきたんだけどなんか格好いいdoxygen用のスタイルシート
配布してるサイトってないの?
4デフォルトの名無しさん:2008/05/30(金) 23:19:18
          ,r-、 l l l /:/
         ,.ノ-'、,!l ,! ,!:/"
  ..-''''~`'ーy'⌒`;'"ヾ,.`,r''"`:,
  '"`'ー-,,r____i';';';';';';';';';'; -j. ゙;
  --....i',.tノ;';';';':'..:::::..':';';';'(.λ
  -_.=/t-';';';';'..::::::. .:::::..';';';  ,!-ー''
  " _!_..>;';';';';'; ::::::::: ;';';';';r'〈ー--
  ,r'",>,i、'r;';';';';';';';';';';';';';' ,!イヽt-''
   ,r'" `t-,ッヽ、;';';';'.'.' i" ヽ ヽ,
  /    `''j   ーπ-'゙`'ー'r'~
        `ー、,__/ ':,
5デフォルトの名無しさん:2008/05/31(土) 11:13:21
>>3
そういえば見ないな
Java風とかw
6デフォルトの名無しさん:2008/06/02(月) 15:25:50
このスレは大器晩成型
7デフォルトの名無しさん:2008/06/04(水) 13:17:22
これだけ使われていてなんで今まで無かったんだろう。
8デフォルトの名無しさん:2008/06/04(水) 21:34:38
>>7
>>2-6見てわかんないの?
9デフォルトの名無しさん:2008/06/05(木) 11:54:36
Doxygenってやたらデグレ多くない?
やっとバグが直ったと思ったら今まで動いていた部分がおかしくなったり。
いつまでたっても満足のいく出力ができない。
10デフォルトの名無しさん:2008/06/05(木) 12:29:52
最新版はツリーが文字化けしたりしないか?
11デフォルトの名無しさん:2008/06/05(木) 21:06:31
output japaneseでやってるけど、左のツリーが化けてる
検証はしてない
12デフォルトの名無しさん:2008/06/06(金) 00:15:15
おまいら Javadoc 風と Qt 風のどっちでコメント書いてる?
13デフォルトの名無しさん:2008/06/06(金) 12:28:19
///
14デフォルトの名無しさん:2008/06/06(金) 13:18:08
ようやくスレが出来たから聞ける
「doxygen」って何て読むの?読んでる?
15デフォルトの名無しさん:2008/06/06(金) 13:23:32
>>14
doxygenの公式ページのFAQに書いてある
16デフォルトの名無しさん:2008/06/06(金) 13:40:56
うは。こんな過疎スレで即レスサンキュー
でも、英語読めませーん

---------------------------------
doxygenはどのように名前を持っていましたか?
Doxygenは単語ドキュメンテーションとジェネレータで遊ぶのから名前を得ました。
ドキュメンテーション - 医者 - dox
発電機 - 情報を得てください。
当時、私が法とyaccを調べていたので、事態は、「y」で、発音可能につけ加えて、なりました(適切な宣告はDocs-ee情報を得ています、長い「e」があるそう)。(そこでは、多くのものが"yy"から始まります)。
---------------------------------
翻訳したけど意味わかりませーん

「ドキシゲン」でいいのかな?
17デフォルトの名無しさん:2008/06/06(金) 13:55:55
ドキシジェンだろ

オキシジェンデストロイヤーから連想して
18デフォルトの名無しさん:2008/06/06(金) 14:11:10
documentation-generator → docs-ee-gen だから
カタカナ表記ならドキシジェンかドクシジェンじゃないかな
俺もドキシジェンって言ってる
19デフォルトの名無しさん:2008/06/06(金) 15:53:35
どくしげんって脳内発音してた
20デフォルトの名無しさん:2008/06/06(金) 18:23:18
げんしけん
21デフォルトの名無しさん:2008/06/07(土) 00:02:59
やっぱ読み方わからない奴結構いるんだな
22デフォルトの名無しさん:2008/06/07(土) 00:38:33
d + oxygen に見えるからドキシジェンだろ。
23デフォルトの名無しさん:2008/06/07(土) 03:42:43
ドキシゲンって読んでたお

HTMLでは、文字化けしないのに
chm作ると、左側の一覧文字化けする
どうしたらいいんだ
24デフォルトの名無しさん:2008/06/07(土) 06:03:46
Goo辞書でoxygenの発音
http://dictionary.goo.ne.jp/voice/o/00060383.wav
これにdをつけて読むだろ条項
25デフォルトの名無しさん:2008/06/07(土) 14:19:08
doxygenうまいこと使ってる
日本語の人って

Seleneの人以外に居る?
http://selene-lue.halfmoon.jp/
26デフォルトの名無しさん:2008/06/07(土) 14:46:47
>>25
「うまいこと」の意味がわからんな。
何か変わった使い方してるの?
27デフォルトの名無しさん:2008/06/07(土) 19:16:40
>>25
日本語の使い方が(ry
28デフォルトの名無しさん:2008/06/08(日) 01:04:30
チョンでごめんなさい
>うまいこと
俺と比べて、丁寧に利用している意味。
というか、普通に活用してるって意味。
29デフォルトの名無しさん:2008/06/08(日) 01:29:52
>>28
じゃぁ、居るよ、ってことで。
30デフォルトの名無しさん:2008/06/08(日) 02:37:06
>>29
氏ね
31デフォルトの名無しさん:2008/06/10(火) 22:40:18
まだ30レスにしか達していないのかよ!!
32デフォルトの名無しさん:2008/06/11(水) 00:36:37
>>7
今まで単独スレが無かっただけで、話すら無かったわけではないぞ。

良いドキュメント・マニュアル・仕様書を書くスレ
http://pc11.2ch.net/test/read.cgi/tech/1065364445/l50
33デフォルトの名無しさん:2008/06/14(土) 14:49:17
Doxygen が吐き出す XML のフォーマットってどっかに仕様書ある?
34デフォルトの名無しさん:2008/06/14(土) 18:14:58
XMLなら名前空間のところにURLがあるんじゃないの?
35デフォルトの名無しさん:2008/06/15(日) 09:05:34
名前空間のURLのところにスキーマがあるとは限らない
36デフォルトの名無しさん:2008/06/15(日) 18:25:33
スキーマって意味まで定義しているんだったっけ。
37デフォルトの名無しさん:2008/06/15(日) 18:28:10
隙間って何ですか
38デフォルトの名無しさん:2008/06/18(水) 21:45:54
C 言語のソースから HTML 文書を生成するときにモジュールのページに
1つの関数に対して func() と Struct::func() のような2つの名前が表示
されてしまうのですが func() だけにできないでしょうか?
39デフォルトの名無しさん:2008/06/19(木) 00:03:43
>>38
OPTIMIZE_OUTPUT_FOR_C はどうしてる?
40デフォルトの名無しさん:2008/06/19(木) 12:11:02
もちろん YES です。
41デフォルトの名無しさん:2008/06/20(金) 03:07:40
doxygenのlicenseの以下の文章の意味がよく分かりません。

Documents produced by doxygen are derivative works derived from the input used in their production; they are not affected by this license.
42デフォルトの名無しさん:2008/06/20(金) 03:19:30
>>41
doxygen で生成した文書は生成に使われた入力の派生物、つまり、この( doxygen の)ライセンスに影響されない。
43デフォルトの名無しさん:2008/06/20(金) 07:56:23
>>42
どうもありがとうございます。
44デフォルトの名無しさん:2008/06/24(火) 14:33:52
C++ のクラスの中の using 宣言は文書化されないのでしょうか?
45デフォルトの名無しさん:2008/06/26(木) 11:37:10
インハウスのCライブラリにコメントつけてDoxygenしたら、
100ページ超のrefman.pdfが出来上がってたまげた。

調子に乗ってデベロッパーズマニュアルまでDoxygenで書いてる。
細かいところでアレな事はあるけど、まだ後悔はしていない。
リファレンスマニュアルやサンプル実装と相互参照できていい感じ。
こういうのは、Docbookとかだとめんどくさくて。
46デフォルトの名無しさん:2008/07/06(日) 09:53:21
グラフ中のフォントサイズが変更できないんですが、cssを直接弄るしかないんでしょうか
47デフォルトの名無しさん:2008/07/11(金) 02:25:54
doxygen使えるな
48デフォルトの名無しさん:2008/07/11(金) 20:05:04
VBのコードvbfilter.pyでをdoxygenで出力するとき、一部の宣言の説明が出力されません。
下の例だと、「関数の説明1」が出力されません。
どなたかVBでdoxygenしてる人助言下さい。お願いします。

'*
'*@class cTest
'*@brief テストクラス
'*@author me
'*@version 1.0
'*

'*@fn Function fncTest(obj as Variant)
'*関数の説明1
Public Function fncTest(obj as Variant) As Variant
fncTest = Nullpo
End Function

'*@fn Function fncTest2(obj as Variant)
'*関数の説明2
Public Function fncTest2(obj as Variant) As Variant
fncTest2 = obj.Nullpo
End Function
49デフォルトの名無しさん:2008/07/11(金) 21:27:54
>>48
vbfilter.pyの出力を晒してみそ
50デフォルトの名無しさん:2008/07/13(日) 02:15:19
>>48
vbfilter.py は、空行を捨ててしまうんですが、
cTest のドキュメントブロックと fncTest のドキュメントブロックがくっついててもいいんでしたっけ?
私も自信ないので…
自分で使う分は空行を通すようにしたりとか、色々と手を加えて使ってます。

なお、 vbfilter.py の説明に、クラスの説明用のコメントは「'*」じゃなくて「'!」で始めるとあります。

それと、doxygen のマニュアルに書いてますが、説明する対象の直前に置くなら、 @fn コマンドはいりませんよ。
5150:2008/07/13(日) 02:33:51
>>48
もうひとつ思い出した。

vbfilter.py は分割行には対応してないので、
実際の fncTest の1行目の宣言が複数の行に分割されてたら認識してくれません。
52デフォルトの名無しさん:2008/07/14(月) 04:02:29
>>50
ありがとうございます!
おかげで正常に出力できました。
ちなみに、関数の前に@fnをつけないとやはり出力されませんでした。
仕方なくつけることにします。

'*@class cTest
'!@brief テストクラス
'!@author me
'!@version 1.0

'*@fn fncTest(obj as Variant)
'*@brief 関数の説明1
Public Function fncTest(obj as Variant) As Variant
fncTest = Nullpo
End Function

'*@fn fncTest2(obj as Variant)
'*@brief 関数の説明2
Public Function fncTest2(obj as Variant) As Variant
fncTest2 = obj.Nullpo
End Function
5350:2008/07/14(月) 20:30:08
クラス名は、ファイル名やフォーム名から vbfilter.py が勝手に付けるので、
@class コマンドもいりませんよ。

@fn コマンドをつけないと出力されないのは、
1行目の @class コマンドの行頭が「'*」になっているために、
fncTest のドキュメントブロックとくっついてしまって
おかしな事になっているのではないでしょうか。

「'*」で始まる行と「'!」で始まる行は違うタイミングで処理されます。
最初に「'!」で始まる行が検出されて、クラス用のドキュメントブロックが出力され、
対応するc++形式のクラス定義が開始されます。
次にファイルの先頭から1行ずつパターンマッチングされて、
関数の1行目や変数定義や「'*」で始まるコメントがc++の書式に変換されます。
この段階では「'!」で始まる行は飛ばされます。
最後に「}」が出力されて、最初のクラス定義が閉じられます。

なお、関数の中身は全部捨てられてます。
中身の変換の機能追加も一時考えたんですが、挫折しました……。
54デフォルトの名無しさん:2008/08/01(金) 22:14:18
ツリー部分の日本語が文字化けしてしまうんですが、どうやったら解決できるでしょう?
今のところ手動で変更してますが、Doxygenの設定でどうにかしたいです。
55デフォルトの名無しさん:2008/08/01(金) 23:03:48
doxygenのバージョンと動かしているOS、食わせているファイルのエンコードとDoxyfileの設定などの情報をどうぞ。
私のところでは文字化けしていないので。
# 尤も、日本語のファイル名なんて使ってないからファイル名が化けない保証はないが。
56デフォルトの名無しさん:2008/08/02(土) 01:33:38
>>54
バージョン1.5.6 なら、Doxygen自体のバグっぽいです。
公式のバグレポートには、ポーランドの人からも
ポーランド語特有の文字が化けると報告されてます。

1.5.5と1.5.6でツリービューの処理が変わってるので、
そこでエンコーディングの処理をミスしたまま、
作者様はラテン1な国の人なので気付いてないってとこではないかと。
57デフォルトの名無しさん:2008/08/02(土) 08:56:42
>>54
1.5.5を使う
5855:2008/08/02(土) 09:09:18
お、私が使っているのはCygwinのインストーラで入れた1.5.5だ。
59デフォルトの名無しさん:2008/08/02(土) 09:13:10
>>56
thx! (54じゃないけど)
6054:2008/08/05(火) 21:35:07
ありがとうございます!バージョンの違いってのは気づきませんでした・・・・
これでキー一つでビルド&ビルド後処理ができるようになりました。
61デフォルトの名無しさん:2008/08/26(火) 16:11:52
今までdoxygenの事を全く考えずにC++で開発していたんですが、
突然思い立ってdoxygenで出力することにしました。
当然、対応形式のコメントでないので一切出力されません。
一から書き直そうと思うんですが、せめてソースを静的に解析して
関数やファイルの頭に定型のテンプレートを追記してくれるようなツールがあればと
探してるんですが、何かないですかね?
62デフォルトの名無しさん:2008/08/26(火) 16:27:23
>>61
そんなことしなくても、コメントの付いてない関数も含めて無理矢理出力させるオプションがあったはず。
DoxyfileのEXTRACT_ALLの項目をNOからYESに変えてみたら?
6361:2008/08/26(火) 18:34:24
はい。その設定で関数は出るんですが、クラスとメンバが
何をしているかの簡単な説明も表示したいと思っています。
既に大量のソースが存在する為、少しでも手間をかけずに実現したいと試行錯誤中です。
自分の様にプロジェクトの途中からdoxygenの使用を考える人間が、
どのようにこの問題を解決しているのか知りたいところです。
64デフォルトの名無しさん:2008/08/26(火) 18:39:07
努力と根性じゃね?
65デフォルトの名無しさん:2008/08/26(火) 19:53:17
>>63
とりあえず、説明文を付けるのは名前だけで中身を判断できないようなクラスやメンバだけに限定しようぜ。
6661:2008/08/26(火) 23:15:44
>>64 >>65
先ほどgccxmlを使用して自宅の環境で関数の位置と引数の情報を取得することができました。
ここからコメントを挿入していけばよさそうです。
お二人はdoxygen以外に勉強しなきゃいけないことがあるように思いますよ。
本当にありがとうございました。
6765:2008/08/26(火) 23:33:51
>>66
四行目が蛇足すぐるwww
でもまあ、健闘を祈る。
あと、無理するなよ。形だけのドキュメント作業なら特に。
6861:2008/08/26(火) 23:56:08
>>67
大丈夫ですよ、あなたみたいにひ弱じゃありませんから。
6961:2008/08/27(水) 00:18:56
名無しに戻ろうと思ったのですが偽者が湧いたので。
>>66は私本人ですが、>>68はどこぞの馬の骨です。

>>67
ありがとうございます。
"努力と根性"という言葉に何故かカチンときてしまい棘のある文章になってしまいました。
プログラマやその上司が気軽に使っていい言葉ではないと考えます。
たかが2chの戯言なのに、と自分でも驚いていますが。
ドキュメントはネット上で一般公開予定なので、なるべく解りやすいものを心がけます。

これ以降、私が>>61で書き込むことはありません。
書き込みがあったとしたら、それは私以外の誰かです。
7061:2008/08/27(水) 00:21:13
いいえ、>69こそがどこぞの馬の骨です。
そもそも、まともな神経をしていたらレスをつけてくれた人に馬の骨なんて使うわけないじゃないですか。
7165:2008/08/27(水) 00:41:27
ワロタw
72デフォルトの名無しさん:2008/09/13(土) 10:38:25
>>61もその程度で躓くレベルでしかもきもいときた
73デフォルトの名無しさん:2008/09/25(木) 11:13:21
word出力したら途中までしかクラスが出てこないのは何故?
74デフォルトの名無しさん:2008/09/25(木) 12:25:23
>>73
htmlでも出ない?
なんか変な記述があるとそれ以降が出ないことがあった。なんだかは忘れた。
75デフォルトの名無しさん:2008/09/25(木) 13:04:40
>>74
htmlだと全部出てるだけど、途切れてる部分見直してみる
ありがと
7673:2008/09/25(木) 13:26:05
>>74
確認してみたけど、特に変な記述は見当たらなかった
でも、たまに出力先のwordでカタカナ部分が文字化けしているとこがあった
OUTPUT_LANGUAGEがJapaneseだと全く表示されず、Japanese-enだと途中まで表示されて
今Englishに変えたら文字化けだらけだけど全部出てきた

INPUTもOUTPUTもcp932でしてるんだけど、どうすりゃ文字化けせずに日本語だせるかな…
7773:2008/09/26(金) 15:47:20
追加報告です。
doxygenのVer1.54使っていましたが、1.47でword出力すると問題なくできました
ご迷惑おかけしました
78デフォルトの名無しさん:2008/09/27(土) 08:34:51
doxyはバージョンあげると劣化することもあるからなあ
最新版のツリー表示の日本語化け直らないかなあ
79デフォルトの名無しさん:2008/10/03(金) 00:09:52
1.5.7 age
80デフォルトの名無しさん:2008/10/09(木) 12:07:46
v1.5.7.1 age
81デフォルトの名無しさん:2008/10/12(日) 12:08:52
>>78
1.5.6でchm形式でインデックスのエンコーディングを選べるようになって文字化けが解消されたから、それで我慢すれ
82デフォルトの名無しさん:2008/10/21(火) 20:34:18
C言語の構造体で、gccのattributeがメンバ「関数」扱いされてしまう
これどうにかならないかな?
OPTIMIZE_OUTPUT_FOR_CはYESになってる

struct Foo
{
    int Bar __attribute__((aligned(32)));
83デフォルトの名無しさん:2008/10/21(火) 22:37:43
>>82
Cにない構文は、INPUT_FILTERにsedかなにかのスクリプトを指定して事前に取り除くしか。
84デフォルトの名無しさん:2008/10/22(水) 01:29:05
8582:2008/10/22(水) 10:40:25
>83-84
ありがとう、ただそれだとattributeが消えちゃうよね
なんとか残したまま正しく動作させたいんですよ
86デフォルトの名無しさん:2008/10/22(水) 12:17:14
1.5.x で enum EnumName に対して @relatesalso StructName を書くと StructName のページに
EnumName が出るようになるのですが、enum のメンバーのリストが表示されなってしまいました。
1.4.x ではできていた記憶があるのですが、1.5.x で正常にする方法はあるでしょうか?

OPTIMIZE_OUTPUT_FOR_C は YES です。
87デフォルトの名無しさん:2008/10/22(水) 12:57:19
>>85 情報後出しキター
88デフォルトの名無しさん:2008/10/22(水) 13:22:05
>>85
あんたの言う正しい動作って何なの?
89デフォルトの名無しさん:2008/10/24(金) 09:34:27
正しく=attributeを残したまま、メンバ変数はメンバ変数として認識だろjk
90デフォルトの名無しさん:2008/10/24(金) 09:39:03
正しくって……
そんな拡張に一一対応しろってのか?
ソースあるんだろうから自分でやれよと思うのだが。
91デフォルトの名無しさん:2008/10/24(金) 10:10:38
いちいちソース書き換えとかコスト見合わないでしょ
だからそれ以外でなんとかする方法を探してるんじゃないか?

まあattributeは確かに独自拡張だが、gccだし割とよく使われてるんで対応してても良いと思う
92デフォルトの名無しさん:2008/10/24(金) 10:15:31
汎用的に
構文解析時だけ指定キーワードを無視するオプションがあればいい
つか、ないのかな?
93デフォルトの名無しさん:2008/10/24(金) 18:10:58
>>91
あなた流に言うと、コストに見合わないので対応しません
94デフォルトの名無しさん:2008/10/25(土) 00:44:08
作者かよww
95デフォルトの名無しさん:2008/10/25(土) 17:40:51
そもそもC言語にメンバ関数は無いんだからdoxygenのバグとも言えるだろ
想定外の構文には警告なりエラーなり出して欲しいよな
96デフォルトの名無しさん:2008/10/26(日) 00:08:33
例えば@paramとかって変えられないの?
97デフォルトの名無しさん:2008/11/08(土) 17:25:21
mac osx 10.5.5
doxygen 1.5.7.1

で実行しようとすると、Failed to run doxygen と言われて一切実行できません。
対処法知っている方、教えて下さい。
98デフォルトの名無しさん:2008/11/19(水) 23:51:11
クラス関連図って作れますか?
1クラスの構造を図にはできるみたいですが・・・
C++です。
99デフォルトの名無しさん:2008/11/20(木) 00:02:36
graphvizがあればできるよ。
100デフォルトの名無しさん:2008/12/17(水) 20:18:15
@dateの後ろに付ける日付をsubversionが自動更新してくれるように
$Date$にしたら、出来たhtmlで日付の見出しが2重になってました。
もしかしてバージョン管理システムのキーワードをdoxygenが認識して
適当に見出し付きで整形してくれるんでしょうか。
マニュアルにそれらしい説明を見た覚え無いんですが。
101デフォルトの名無しさん:2008/12/21(日) 21:45:55
公式とかで、きちんとした例が*.hしかないと思うのは気のせい?
102デフォルトの名無しさん:2008/12/23(火) 01:27:13
ちょっとメモ。
doxygenで出力したRTFがどうも文字化けするので調べてみたら、\\'を\\\'に変換することで解消することが判った。
要は\を表すのにそれ自身をエスケープして\\とする必要があると言うことなのだろうか。もうちょい調べる必要はありそう。
103デフォルトの名無しさん:2008/12/27(土) 23:00:37
日本語がうまく通らない原因ってどこにあるの?
104デフォルトの名無しさん:2008/12/28(日) 00:28:11
>>100
doxygenは$date$を認識するみたいだね。だから@dateは書かなくていい
105デフォルトの名無しさん:2008/12/28(日) 04:51:23
Doxygen 1.5.8 age
106デフォルトの名無しさん:2008/12/28(日) 05:06:03
アップデートコネーから自分で作るか…
107デフォルトの名無しさん:2008/12/28(日) 09:17:52
>>101
ヘッダーに書けば十分だからじゃないかな。

でも、詳細をヘッダーに長々と書いてヘッダーが読みにくくなりそうなときは、詳細だけcppに分けて書くことはあるよ。それでもdoxygenはちゃんとまとめてくれる
108101:2008/12/28(日) 15:47:03
>>107 thx

十分かとも思えてきた。
概要かけばいいんだもんな。
漏れは最近doxygen向けのコメント付けはじめたからもうちょい使って慣れてみるわ
109デフォルトの名無しさん:2008/12/28(日) 19:40:09
>>103
Shift-JISコードの2バイト目に\を割り当てたマイクロソフトに原因がある。
110102:2008/12/29(月) 14:53:28
更に追加。他にも、エスケープすべき文字をエスケープしていない箇所を発見。
xyzzyの場合の正規表現置換でこれを行なうとかなり改善する。
(query-replace-regexp "\\(\\\\'..\\)\\([{}][^
][^t]\\)" "\\1\\\\\\2")
# 場当たり的だなぁ……
111102:2008/12/29(月) 14:56:31
あー、済まない、補足。

文字列中に出てくる「{」も「}」も、どちらもエスケープしなければならないと言うのが>110の対応。
但し、文字列中かどうかの判断を厳密に行ないたくないので手元のファイルで場当たり的に対応してある。

誰か、ソース拾ってきて対策してくれる奇特な人はいないもんかのぉ。
112デフォルトの名無しさん:2008/12/29(月) 16:04:40
>>111
文字列として表示されるべき「{」や「}」がエスケープされてないってこと?

いつもHTMLしか出してなかったんだけど、試しに手元にあるソースでRTF出してみたら、
こちらではリストをネストさせてるところで、上の階層の行末の書式文字の「{」が
普通の文字として扱われたりして、「{」と「}」の対応が崩れてエラーになってるっぽいです。
(いや、ネストされて表示はされてるから、書式文字以外に余分に「{」が付いてる?)

行末が特定の文字(「定」とか「得」とか)の場合になるみたいだけど、
条件がよくわかりません…
113102:2008/12/29(月) 16:16:27
>>112
2バイト文字の2バイト目に{}\のいずれかが来るケースで、エスケープされないようです。
# 「定」「得」どちらも該当しないようですが……

処が文字列を明示的に区切らないのがRTFの仕様らしくて、キーワードとしての{や}と区別が難しいのですよ。
実は>102の対策だけだと{}の対応が崩れてしまってrtfの一部だけしか読み込まれないことが判って気づいたんですが。
# 客先に実態の1/3程度しか分量がない資料を提出しちゃったのは内緒w

念のため確認したら、手元のDoxygenはCygwin同梱の1.5.5でした。
# さて、rtfを変換するツールを真面目に作るのとdoxygenそのものを修正するのとどっちが楽だろかw
114デフォルトの名無しさん:2008/12/29(月) 16:26:38
>>113
だいぶ前からエンコーディング指定して全部一旦 UTF-8 に変換されるようになったから
その手の問題は解決済みだと思ってるんだけど、何かバージョン上げれない理由でもあるの?
115デフォルトの名無しさん:2008/12/29(月) 17:54:50
cygwinの最新は1.5.5-1だね。
つまり、解決済みではないらしい。
116デフォルトの名無しさん:2008/12/29(月) 18:19:03
cygwinは使ってないので、それが理由かどうかは知りませんが、
1.5.6から1.5.7.1まではフレーム付きHTMLのツリービューで
英数字以外が文字化けするという問題がありました。
2日前に出たばかりの1.5.8でやっと解決されました。
117デフォルトの名無しさん:2008/12/29(月) 19:13:27
>>115
Windows ネイティブ版を使えない理由があるの?
118デフォルトの名無しさん:2008/12/29(月) 20:15:40
全部一旦 UTF-8 に変換されるようになったのは、1.5.2以降だから、
>>113, >>115 の cygwin版も UTF-8 に変換されるバージョンです。

最新版でも日本語RTFはかなり駄目な感じです。
手元のソースを処理させてみたら、目次の見出しの「目次」の後ろとか、
あちらこちらに見えてはいけない「\par」や「{」が見えて、
本文数ページで破綻します。
119デフォルトの名無しさん:2008/12/29(月) 20:53:32
HTML だと問題ないってことかな? HTML しか使ってないからよくわかんないや。
120118:2008/12/29(月) 22:31:08
昔、1.4.6でRTFを作ったことのあるソースを、設定をほとんど変えずに1.5.8に掛けても駄目でした。
1.4.6で作ったRTFの半分ぐらいしかファイルサイズがありません。
むしろ内部処理が UTF-8 になってから、おかしくなったんじゃないかという気がしてきました。
121デフォルトの名無しさん:2008/12/29(月) 23:06:51
折角色々対応してあったのを、UTF-8にしたのを機に捨ててしまったような感じだな。
この正月休みの間に暇があるようならソースでも見てみるか。
122デフォルトの名無しさん:2008/12/30(火) 01:23:34
過去のバージョンを取ってきて順に試してみました。
1.5.0までは日本語の RTF が生成できて
(おかしなところが無いかまではチェックしてませんが)、
1.5.1で、
"Warning: Output language Japanese not supported! Using English instead."
と表示され、日本語が表示できませんでした。
ここで一旦無かったことにされたようです。
123デフォルトの名無しさん:2008/12/30(火) 03:40:46
問題分かったかも。

id 437346 のバグレポートで日本語対応の議論がされてるんだけど、
報告者の人が提案した、
x080より大きいバイトが来たらマルチバイト判別フラグON、
次のバイトでフラグOFF、というのをそのまま採用してくれたらよかったのに、
0x80より大きいかの判断をそのままフラグに入れちゃってるから、
2バイト目が0x80より大きい場合に、その次のバイトまでエスケープされて、
それがエスケープされたら困るものの場合に不幸になってるということかと。
124デフォルトの名無しさん:2008/12/30(火) 03:58:34
repopかければいいのに。

rtfって何で読めるんだろう。AbiWord?ooo?
125デフォルトの名無しさん:2008/12/30(火) 08:55:13
>>123
事はそう単純じゃない。というか、もっと単純。
内部UTF-8をcp932に変換して、必要ならエスケープすべきなのにそれをしていないと言うのが>102=113の観測だろ。
例えば「ソソ」が「\'83\\\'83\\」にならないといけないのに「\'83\\'83\」になると。

それとも、二種類の問題が独立して存在しているのか?
126123:2008/12/30(火) 10:22:07
>>125
ああ、すいません。
>>123で書いたのは、1.5.8の場合の問題です。
>>102,,>>113の、.1.5.5の問題はエスケープされてないというので合ってると思います。
1.5.8でそれに対する対応が入れられたけど、方法がまずく、
今度は逆にエスケープすべきでないところまでされたという話。
127デフォルトの名無しさん:2008/12/30(火) 11:17:38
>>78
1.5.8で直った
128デフォルトの名無しさん:2009/01/08(木) 07:49:37
とりあえず保守ですが、あけおめ。

日本語rtf使えるようになるといいですね

自分はまだ皆様のようにハックに参加できるほど技術がないので、精進したいと思います。
129102:2009/01/08(木) 09:55:41
又更につまらない問題に遭遇。
折角修正したrtfがWordだと読めるのにOpenOfficeだと文字化けする。
例えば、「\'83\\」のような>125が指摘した例だと、「\'83\'5c」のようにしないといけないらしい。
あーもう、rtfを解析するしかないのかなぁ。
# doxygen1.5.8で変わっているらしいからそっちに手を出すのは避けたいし。
130デフォルトの名無しさん:2009/01/08(木) 22:19:22
解決しました。ありがとうございました。
131デフォルトの名無しさん:2009/01/10(土) 14:59:07
1.5.8 のrtfのエスケープバグのソースって
どのファイルなのかな?
132102:2009/01/10(土) 15:17:25
ちょっとLinuxに1.5.8をインストールしたので出力してみたが、これは酷いw
2バイト文字を全てコード出力しているのはいいが、>123のように無関係なコマンド文字まで巻き添えにしてしまっている。
おまけに、コマンド文字列を何故か\commentで括ってしまっているので収拾がつかない状態。

そうそう、html出力のツリービューも、(UTF-8)指定なのにも関わらずプロジェクト名がEUCで出力されるので化け化け。
誰かなんとかして〜w
# ってことで、>131に期待♪
133デフォルトの名無しさん:2009/01/11(日) 01:06:49
うはw ぼくとしては>102さんに期待してるんだけどっw
134デフォルトの名無しさん:2009/01/12(月) 00:56:25
>>131
rtfgen.cpp の void RTFGenerator::postProcess(QByteArray &a) です。
こちらを参考に。
ttp://bugzilla.gnome.org/show_bug.cgi?id=437346

>>132
そういや最近プロジェクト名を日本語にしてなかったけど、これは…

どうやらDoxywizardのバグのようです。
テキストエディタでDoxyfile開いてプロジェクト名を修正して、
コマンドラインでDoxygenを実行したら、文字化けしませんでした。
135デフォルトの名無しさん:2009/01/12(月) 02:36:31
>>134 ソース位置ありがとう。
これって、よくわかってないけど、postProcess()で、ファイル全体を
エスケープしてるのかな。
もしそうなら、rtfでの表示される文字列以外も全部エスケープされて
しまい、上のバグが症状がでてるんじゃないかな?
rtf表示文字列だけをエスケープするようにするには、postProcess()
の中でやってちゃだめで、rtfgen.cpp(にあるか知らないけど)
で表示文字列をrtfタグ中に埋め込む時コード当たりでやらないといけなそう?

とりあえず、doxygenをWindowsでコンパイル出来る環境作り
からやらないといけないのが辛いorz
136デフォルトの名無しさん:2009/01/12(月) 08:13:44
>>135
頑張れw
Cygwinなら協力する。
# つーか、ソース拾ってきて自分でやれ>自分
137134:2009/01/12(月) 21:40:12
>>135
0x80より大きい値とmb_flagが1のときだけエスケープされるはずです。
1.5.7.1以前のバージョンではmb_flagが無くて、0x80より大きい値という条件しかなかったので、
マルチバイト文字の2バイト目が「{」や「\」などの場合におかしくなってました。

mb_flagをマルチバイト文字の1バイト目で1にすれば、
次のバイトが0x80以下でもエスケープされるという仕組みのはずですが、
mb_flagの設定方法がまずくて、2バイト目でクリアされなくて
さらに次のバイトまでエスケープされる場合がある、という状況です。

ttp://bugzilla.gnome.org/show_bug.cgi?id=437346
で、T.Matsuyama氏が提示したコードが正しく動くはずです。

#そこまで分かってるな自分でやれ、と言われそうだ……
すいません、環境作りが荷が重いですorz
138デフォルトの名無しさん:2009/01/14(水) 22:11:56
バグ修正版バイナリ出来たよん。
http://www1.axfc.net/uploader/He/so/182473&key=doxygen
T.Matsuyama氏パッチそのままです。
ばっちりっぽいです。
102さん、134さんありがとw
139デフォルトの名無しさん:2009/01/14(水) 22:17:06
おー、これは凄い。後で試してみるか。
140デフォルトの名無しさん:2009/01/27(火) 01:28:30
てか、>>137のURLが示すバグをreopenして開発者に教えてあげればいいんじゃないの?
アカウント持ってないから誰でもreopenできる設定なのかはわからないけど
141デフォルトの名無しさん:2009/01/27(火) 07:49:20
いかん、未だ試せてない……
142デフォルトの名無しさん:2009/01/30(金) 01:55:55
コメントが一切ついてないソースに
関数の定義部分だけ自動的に
タグを生成してくれるツールないですか?
143デフォルトの名無しさん:2009/01/30(金) 02:14:58
>>142 ctags?
144デフォルトの名無しさん:2009/01/30(金) 07:39:05
>>142
このスレ的には、タグというとDoxyfileのタグのことになるのだがそれでいいのかい?
145デフォルトの名無しさん:2009/01/30(金) 07:42:20
@が付くやつがいい
146デフォルトの名無しさん:2009/01/30(金) 08:23:53
ドキュメントつけしてない関数も出力するオプション?
147139:2009/02/15(日) 17:55:27
やっと>138を試せた。取り敢えず、cygwinからでも使えることと日本語が化けないことは確認した。
但し、OpenOffice(3.0)では{comment[^{}]}を取り除く必要があったこととTITLEなどのフィールドは
巧く変換できなかったけれど、これは元からそうなのかもしれない。
今度機会があれば、素直にMSwordに食わせてみるとしよう。
148139:2009/02/17(火) 18:58:43
cygwinで>138を動かし、できたRTFをWORD2000に食わせた。
全選択してフィールドの更新、画像アンリンクのマクロを動かして、
docに名前を変えて保存。一応、スタンダロンで使える資料になるようだ。

で、画像アンリンクのマクロって需要あるかな。あるようならどっかで公開するけど。
149デフォルトの名無しさん:2009/02/28(土) 05:29:11
doxygenのライセンスってGPLですよね。
doxygenのコメントを書いたソースって公開しないと駄目ですか?
150デフォルトの名無しさん:2009/02/28(土) 05:39:00
ならないよ
GPLのお絵かきソフトで絵を描いたようなもん
151149:2009/02/28(土) 05:50:38
>>150
ありがとうございます
152デフォルトの名無しさん:2009/03/03(火) 10:33:16
DoxyfileもGPLに該当しないのかな。
それとも、コメント部分は削除しておいた方が無難?
153デフォルトの名無しさん:2009/03/03(火) 22:08:28
ソフトのドキュメントを作るのにDoxygenを利用してもGPLにする必要なし。
ソフトの機能としてDoxygenを利用する場合はGPL。
154デフォルトの名無しさん:2009/04/06(月) 21:16:11
@a と @p ってどう使い分けてる?
どっちも文中の引数のフォントを変えるために使うものみたいだけど。
155デフォルトの名無しさん:2009/04/08(水) 12:32:53
\aは「特殊なフォント」ということで一般的にはItalicかな。
\pは\cと等価で「タイプライタフォント」ということで等幅フォントが使われる。
後は、実際の出力を見て検討したら?
156154:2009/04/09(木) 00:04:14
普通はどうする、ということは特になくて、見た目の好みで使えばいいのですか。
ヘルプを見ると、@aは "refer to member arguments" 、
@pは "refer to member function parameters" と書かれてて、
微妙に使い分けがあるようなないような、よく分からなかったもので。
157デフォルトの名無しさん:2009/04/09(木) 07:14:32
意味で使い分ければいいと思う。
フォントとかの体裁はCSSで変えられるんじゃなかったかな?やったこと無いけど。
158デフォルトの名無しさん:2009/04/09(木) 08:11:53
@a の argument が実引数で @p の parameter が仮引数なわけだけど、
コメント中では仮引数しか現れない気がする。実引数が現れることなんてあるか?
159デフォルトの名無しさん:2009/04/09(木) 09:06:56
恣意的に使い分ければいいんじゃね?

>>157
出力するものによって指定するスタイルシートや指定方法は違うけど、htmlならcss,だね。
やったことないけどw
160デフォルトの名無しさん:2009/04/10(金) 04:10:58
member argumentがクラスのメンバー変数ってことはないかな。
161デフォルトの名無しさん:2009/04/10(金) 23:50:56
>>158
@p param1 の値が @a xxx だったら〜
みたいな説明を書くのに使うとか?
162デフォルトの名無しさん:2009/04/25(土) 21:37:10
メソッドのコメントは、戻り値がなくても「@return なし」と明示的に書くべきでしょうか?
引数がない場合も同様に「@param なし」と書くでしょうか?
163デフォルトの名無しさん:2009/04/25(土) 21:38:20
前者はお好きにどうぞ。
後者は「なし」なんて引き数はないぞって警告が出るんじゃないかな?
164162:2009/04/25(土) 21:45:11
>>163
レスありがとうございました。
確認したら「@param なし」ではwarning argumentと出ましたのでこれは書かないようにします。
165デフォルトの名無しさん:2009/04/30(木) 13:43:57
今の大会は、開発環境の違いによる面白さもあると思う。
共通スペックでやるなら別に大会をおこせばよいと思う。
166デフォルトの名無しさん:2009/04/30(木) 13:45:15
>>165
誤爆しました。すみません。
167デフォルトの名無しさん:2009/04/30(木) 23:56:10
Doxygen 1.5.9 age
168デフォルトの名無しさん:2009/05/01(金) 00:16:08
さっきまでは1.5.8だったのに。早速試すぜ。
169デフォルトの名無しさん:2009/05/12(火) 10:55:11
ソースの先頭のコメントの 理想的なサンプル を教えて。
言語は問わないけど、出来ればCで。
170デフォルトの名無しさん:2009/05/12(火) 18:22:26
理想的かどうか知らんが、私の典型。
--
////////////////////////////////////////////////////////////////
/// \file foo.c
/// \brief あーたらこーたら
///
/// あーたらこーたらをあーたらこーたらするとかなんとか。
/// \date 2009/3-4
/// \author bar\@site
/// \attention なんだかんだ
/// \version hage.hige.hoge
//
--
171デフォルトの名無しさん:2009/05/13(水) 04:06:28
>>169
とりあえず最小限はこうだろ。 JAVADOC_AUTO_BRIEF オンで。

/** @file
* 簡単な説明.
* 詳細な説明
*/

170 のやつだと、ファイル名はどうせ名前変更したときに更新し忘れるし、
日付や作者やバージョンはバージョン管理ソフトに任せればいい。
詳細な説明も attention も必要に応じて、だな。とにかく書かないで済むものは
書かないのが一番。
172デフォルトの名無しさん:2009/05/13(水) 09:19:41
>>170
ありがとうございます。

>>171
そのバージョン管理ソフトに書かせるので心配ゴム用です。
173デフォルトの名無しさん:2009/05/13(水) 16:20:47
表書くのってtableタグ使うしかないんでしたっけ?
それだとソース上で見づらいんで、
リストみたいに簡易記法があればいいんですけど。
174デフォルトの名無しさん:2009/05/13(水) 22:00:48
doxygenって使ったこと無いんだけど、
ぶっちゃけて言うと、オススメですかい?
175デフォルトの名無しさん:2009/05/13(水) 23:26:06
>>174
おすすめとは言えない

でも面白い使い道がある事は確か

実際に走らせてみて「おー」とか言って楽しむものだと思う
176デフォルトの名無しさん:2009/05/14(木) 09:55:19
>>174
クラス関連図とか、煩いクライアント向けのコーリングツリーを作るのに便利。
# 余程酷いソフトハウスに当たった経験があるのか、関数の依存関係を知りたがるクライアントがいるのよ。
177174:2009/05/14(木) 22:16:15
>>175-176
ほっほー。
ありがとう。
「ある程度習熟するために勉強を要してめんどくさそうだ」
と思っていたが、試してみようかなあ。
178デフォルトの名無しさん:2009/05/14(木) 23:43:40
>>177
コメント付いてないのも全部出力する設定で、
とりあえず手持ちのソースそのまま掛けてみたらいいよ。

それで出来上がるものが気に入れば、それから書き方に慣れていったらいいし。
179デフォルトの名無しさん:2009/05/14(木) 23:50:13
Graphvizの使い方が秀逸だと思う
これは出力結果を印刷してじっくり眺めたい
180177:2009/05/15(金) 06:46:11
>>178
ありがとう。分かった、そうしてみるわ。
181デフォルトの名無しさん:2009/05/15(金) 09:37:18
客先から小汚いソースを受け取ったら、取り敢えずDoxygenに掛けて
静的解析するのは基本だな。
182デフォルトの名無しさん:2009/05/15(金) 10:09:23
>>171
subversionとかの置き換えキーワードもdoxygenは認識してドキュメント化してくれる。
183デフォルトの名無しさん:2009/05/21(木) 13:35:09
ちょっと詳しい説明を箇条書きで入れたいんだけど、
空白行が入るとパラグラフが終わってしまうので、空白行を一切入れないで
長い文章を書かなきゃいけなくなり、なんていうか
ソースコードのコメントが非常に見づらい。本末転倒な気がするんだけど、
空白行を無視してくれる方法とか、ない?
184デフォルトの名無しさん:2009/05/23(土) 02:32:07
>>183
ソースコード上でだけ行間が空いてればいいのなら、
全角スペースを入れておけばどうでしょう?
ドキュメント上で行が連結されたときに、余分な空白が入りますが。

ドキュメントでも行間が空くようにしたいのなら、
行頭の邪魔にならないところにでも「@n」を入れておくぐらいしか思いつきません。
185デフォルトの名無しさん:2009/05/24(日) 13:15:10
doxygenの文字化け対策
ttp://d.hatena.ne.jp/kmt-t2/20090403/1238718375
ここに救われた俺がいる。
186デフォルトの名無しさん:2009/05/24(日) 14:01:52
doxygenであるライブラリのドキュメントを作った時、
そのライセンスってどこにどうやって記載すればいいの?

ドキュメント内に表示されるようにしたいんだけど。
187174:2009/05/24(日) 16:39:03
doxygen気に入ってきた。


C++とdoxygen最新版にて。

ドキュメント作ると名前解決に使う::がドキュメントにもりこまれたり盛り込まれなかったりする。
例えばNameS::MyClassが、
ドキュメントの100行目ではNameS::MyClassになっているのに
101行目ではNameSMyClassになっていたりする。

これはどう解決すればいい?
188デフォルトの名無しさん:2009/05/25(月) 10:31:42
>>187
このレスの流れを見ても分かるように、Doxygenは文字コードの扱いが未だ未だ不安定だったりする。
あんたの言う、「ドキュメント」がrtf出力ならこのスレにある対策版を使ってみた方がいいかもしれないし、
chm出力なら>185を参考にするといいかもしれない。
189デフォルトの名無しさん:2009/05/25(月) 20:01:17
>>186
@mainpageコマンドでメインページに入れるか、
@pageコマンドで独立したページにすればどう?
190174:2009/05/25(月) 23:27:45
>>188
ありがとう。
説明不足だったね。
ドキュメントはフツーのHTMLなんだよね〜。chmじゃなくて。

>185をやってみたら文字化けは解消したんだけど
>> ドキュメントの100行目ではNameS::MyClassになっているのに
>> 101行目ではNameSMyClassになっていたりする。
この現象は解決しないのだ。。。

191186:2009/05/25(月) 23:41:59
>>189
@pageコマンド
なんて初めて知ったわ。

どこかいい解説サイトとか紹介してくれる
お方、いらしたらお願い!
192デフォルトの名無しさん:2009/05/27(水) 12:59:53
>>191
doxygenに付いてくるサンプルも参考になるよ。
当然全部英語だけど、記述例のソースと
それを使って出力されたドキュメントがある。
コマンドの説明が知りたかったら、
>>1 のサイトの日本語版マニュアルを見ればいいし。
193186:2009/05/27(水) 19:11:01
>>192
そうか、ありがとう。
見てみるよ。
194デフォルトの名無しさん:2009/05/28(木) 03:59:47
いつの間にかDoxywizardもだいぶ使いやすくなったんだな
195186:2009/05/28(木) 06:28:18
俺は最近doxygenを使い始めて、
最初に
Doxywizard
を使ってかなり直感的に操作できたから知らなかったが、
そうなのか。前は使いづらかったのか。

grach
196デフォルトの名無しさん:2009/05/30(土) 12:54:18
#defineマクロ定義をドキュメント(html)に出力させたくて
ttp://www.doxygen.jp/commands.html#cmddef
ここを見て

C++ code - 19 lines - codepad
ttp://codepad.org/mUM77yZO

こんなの書いてみたんですが、
全然#defineマクロ定義が出力されません。

どうすれば良いでしょうか?
197デフォルトの名無しさん:2009/05/30(土) 17:17:56
>>196
define_test.h のファイルのページ自体は出来てる?
実際のファイル名と @file の後ろに書いたファイル名が合ってないとかはないかな、と思ったもので。
198196:2009/05/30(土) 23:13:55
>>197
ttp://loda.jp/uploader_nrnrnr/?id=2
こんなHTMLが生成されました。

どうなんでしょう。。。?
199197:2009/05/31(日) 00:25:04
>>198
define_test.h ファイルのドキュメントのページができてないね。
>>196 のソースをコピペして同じ名前で保存してみたけど、
こっちじゃちゃんと出力されてるよ。

Doxyfile 晒してもらえるなら、何が違うか比べてみるけど。
200197:2009/05/31(日) 00:31:38
>>198
もしかして、SHOW_FILESがOFFになってない?
Doxywizard使ってるなら、ExpartのBuildの下の方。
201196:2009/05/31(日) 04:59:33
>>200
丁寧にありがとうございます。
Doxyfileは以下です。
C++ code - 1503 lines - codepad
ttp://codepad.org/aNCHcRW3
お願いします。
202196:2009/05/31(日) 05:04:41
追記:
  SHOW_FILES=NOになっていましたが、
  YESにしても変わりませんでした。
  私の環境は
  windows xp sp2
  doxygen 1.5.9です。
203197:2009/05/31(日) 05:45:10
>>201
WARN_IF_DOC_ERROR を ON にしたら判明した。
ENABLE_PREPROCESSING が OFF だとマクロは見てくれないらしい。
204197:2009/05/31(日) 05:51:37
補足

WARN_IF_DOC_ERROR を ON にしたら、
「マクロにコメント書いてるけど、ENABLE_PREPROCESSINGがOFFだからスキップしたよ」
というようなメッセージが表示された。
205196:2009/05/31(日) 14:59:44
>>204
ありがとうございます。
WARN_IF_DOC_ERRORとENABLE_PREPROCESSINGをYESにしてみましたが、
結果は代わりありませんでした。
Doxyfileはこちらです。
ttp://codepad.org/rsH3deU0
設定を読み込み直していないなどということはなく。
doxygenのウィンドウに表示される情報は
ttp://codepad.org/bqYOU7ug
の通りです。

すみませんがよろしくお願い申し上げます。
206196:2009/05/31(日) 22:27:30
追記:
  テキストエディタでDoxyfileを開き、
  = NO
  を検索して全て
  = YES
  に置換してみました。
  それでdoxygenを走らせたところ、見事#defineは出力されました。
  やはり設定が問題な様です。

207196:2009/05/31(日) 22:43:14
どこの設定が問題なのか探るために
Doxyfileにて二分木法的にNOをYESに置換してみました。

ファイルのど真ん中の行を基準に上だけないし下だけを
全部NO→YES置換を行いました。

しかし、このどちらも#defineが出力されません。
やはり複数の設定項目が関わっているようです。
208196:2009/05/31(日) 22:56:12
解決しました。

正解は
・ENABLE_PREPROCESSINGをYESにする。
・SHOW_FILESをYESにする。
でした。両方が同時に満たされていないとだめなようです。

お手数をおかけ致しました!
209197:2009/06/01(月) 01:23:37
>>205-208
解決したようなのでもういいかもしれないけど、
WARN〜系の設定は、出力状態を変更させるためのものではなくて、
コメント付けてるのに出力されない設定になってるとか、
記述漏れがあるとか、そういうエラーメッセージを表示するためのもの。

今後何かうまくいかないときに参考になるかもしれないので念のため。
210196:2009/06/01(月) 05:54:55
>>209
はい、WARN〜系の設定に関して、よく頭に入れておきます。

ありがとうございました。
211デフォルトの名無しさん:2009/06/01(月) 23:20:24
Windows XP SP2, doxygen 1.5.9です。
htmlドキュメントを生成すると、
本文中のstd::coutのようなスコープ解決演算子が消えてしまい、
stdcoutになってしまうことが多々あります。
再現するソースやその結果のhtml, Doxyfileは以下の様です。
ttp://loda.jp/uploader_nrnrnr/?id=3

具体的にはこのソースにて
 Test::foo()は
 numをstd::coutに出力します。
になるはずが
 Test::foo()は
 numをstdcoutに出力します。
になってしまいます。

再現条件は絞れておりません。
どうかお知恵をおかしください。
よろしくお願い申し上げます。
212デフォルトの名無しさん:2009/06/02(火) 02:54:51
>>211
理由はよく分からないけど、std::coutの前後に空白を入れたら正しくなりました。
識別子っぽいものに非ASCII文字がくっついてたらおかしくなるってことじゃないかと思うんですが。
213211:2009/06/02(火) 06:08:56
>>212
たしかに、前後に空白で正しく表示されます。
本当に適用したいソース(再現用ソースでない)でもうまく表示されます。
ありがとうございました。
214デフォルトの名無しさん:2009/06/02(火) 23:53:16
>>195
今のdoxywizardはver.1.5.8(去年の暮れ頃)からですね。

基本的な設定項目だけのwizardモードと、
設定可能な項目が全部表示されるexpertモードの2本立てというのは
昔も今も変わりませんが、
設定を変えたら保存しないと実行できなかったとか、
設定項目のセクション切り替えがタブで、expertモードだと
たくさん並んでるのをぐるぐるスクロールさせる必要があったとか、
細かいところで少し不便でした。

マニュアルに載ってるスクリーンショットは旧バージョンのような気がします。
215デフォルトの名無しさん:2009/06/02(火) 23:58:29
doxygenで、1カ所に書いたコメントを複数箇所で参照する方法はありますか?

例えば、
hoge.h内で@version 1.1.1
という記述が同じhoge.h内で他にも複数箇所に登場する場合、
全部に@version 1.1.1と書いてしまうとバージョンを上げる時に
全箇所を手動で修正する羽目になってしまいます。

どうにかする手段はありますか?

216デフォルトの名無しさん:2009/06/03(水) 02:07:50
>>215
設定ファイルのALIASESで@version 1.1.1に別名をつければ、
バージョンを上げるときはそこだけ変えればOK

というのはどうでしょう?
217デフォルトの名無しさん:2009/06/03(水) 03:43:33
質問です。

いままでのプログラムは以下のようにコメントしていたのですが、
doxygenでは/** */の形式にしないとドキュメント作成はできないのでしょうか?
コメント部分を目立たせたいので、できれば今までのコメント形式を維持したいのですが・・

今までのコメント例
//********************************************************
// Test.cpp
// 2009.09 by Tester
// テスト用のクラス
//********************************************************

これを
/**
*
*
*
*/
形式にするのは少し抵抗があります
218デフォルトの名無しさん:2009/06/03(水) 08:40:05
>>217
特定の形式にしないと、ドキュメントにしないコメントと区別できないですからね……

使えるコメント形式はマニュアルの「Documenting the code」にいろいろ例があります。
(日本語マニュアルは古くて少し情報が少ないです)

今までのに比較的近いのは
/*****************************************************//**
* Test.cpp
* 2009.09 by Tester
* テスト用のクラス
*********************************************************/
でしょうか。
219デフォルトの名無しさん:2009/06/03(水) 10:41:33
>>217
最初と最後の //****** はそのままで、途中の行だけ先頭の//を3文字にすればいい
220デフォルトの名無しさん:2009/06/03(水) 10:48:32
つまり、こうだな。
//********************************************************
/// \file Test.cpp
/// \date 2009.09
/// \author Tester
/// \brief テスト用のクラス
//********************************************************
221デフォルトの名無しさん:2009/06/03(水) 16:06:28
>>217
俺も抵抗があったけど、
変えてみたら意外と平気だったよ。
要は見慣れるかどうか。
222デフォルトの名無しさん:2009/06/03(水) 16:09:51
>>216
ALIASES
なんてものがあるのですね。
ありがとうございます、試してみます。
223デフォルトの名無しさん:2009/06/03(水) 22:23:44
>>218-221 thanks

ですが、ファイルの最初のコメントを
//********************************************************
/// \file Test.cpp
/// @file TEST.cpp
//********************************************************

と色々やってみたのですがうまくいきませんでした・・
ファイルの最初だと///ではドキュメント化されないのでしょうか
クラス宣言前や関数前では///で書いたコメントはちゃんとドキュメント
のコメントとなっておりました。

ちなみに、ファイル一覧からコードを見るとなぜか明朝体?で表示されてしまいます。
以下のドキュメントのようにゴシック表示をしたいのですが、Font設定はどのようにすればよいでしょうか?
http://www.ee.t-kougei.ac.jp/tuushin/lecture/technicalWriting/euclid/html/euclid_8c-source.html

224デフォルトの名無しさん:2009/06/03(水) 22:57:41
追加で質問失礼。

Player.hの内容↓

/** @brief クラスの簡易説明
 * このクラスの使用目的・使用方法など詳しい情報を書く。
 * @todo 必要であれば記述
 * @bug バグがあれば記述
*/

#if !defined (__PLAYER_H__)
#define __PLAYER_H__

class CPlayer
{
...
}


というプログラムだと、インクルードガードのほうに

マクロ定義
#define __PLAYER_INFO_BASE_H__
クラスの簡易説明  * このクラスの使用目的・使用方法など詳しい情報を書く。

というドキュメントが付いてしまうのですが、
インクルードガードは一番上に書かなければいけないのでしょうか?

できればファイルに関するコメントを一番上に記述したいのですが・・・
225デフォルトの名無しさん:2009/06/03(水) 23:10:52
さらに追加質問ですいませんorz


出力されたドキュメントは任意の名前のフォルダに作成されますが、
index.htmlが他の細かいファイルと一緒のフォルダにあるため探しづらいです。
そのため、index.htmlだけ残して他のファイルを別のフォルダに押し込む
というようなフォルダ構成を構築したいのですが、そういったことは可能でしょうか?
226デフォルトの名無しさん:2009/06/03(水) 23:33:53
>>223
ファイルの最初のコメント:
ファイル名の大文字・小文字の問題かもしれません。
ファイル名無しで @file だけにしてみてはどうでしょうか。

フォント:
フォントはデフォルトのスタイルシートで、
font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif;
と設定されてるので、
特にカスタマイズしてなければゴシックで表示されるはずなんですが。

>>224
対象を指定しないドキュメントは、直後にあるものに関連づけられます。
ファイルに関するコメントにしたいなら、@file が必須です。
227デフォルトの名無しさん:2009/06/04(木) 08:53:01
>>224
本題とは直接関係ないと思いますが、ドキュメントに「 * 」が入ってるのが気になりました。
コメント行頭の「 * 」のところ、全角スペース使ってませんか?
228デフォルトの名無しさん:2009/06/04(木) 23:00:02
>>226-227
thanks.

一度doxygenを全削除して再インストールしたら
なんとかファイル要約関連のコメントはでるようにできました。
229デフォルトの名無しさん:2009/06/05(金) 00:21:06
また質問なのですが、
以下のような複数行について同じコメントをつけたい場合は
何かうまい記述法はありますか?

例:

/// 3D座標を示す値.
int nX;
int nY;
int nZ;

このままですと、nXだけにコメントがついてしまうため、
3つの変数全てに同じコメントを出すようにしたいのですが・・・

int nX;///< 3D座標を示す値x.
int nY;///< 3D座標を示す値y.
int nZ;///< 3D座標を示す値z.

これだと冗長な感じでちょっと抵抗があります
230デフォルトの名無しさん:2009/06/05(金) 02:50:49
っ nameタグ
231デフォルトの名無しさん:2009/06/05(金) 09:01:35
>>229
普通は、一つのコメントで括られるような変数は構造体に入れるもんじゃね?
232デフォルトの名無しさん:2009/06/05(金) 19:33:13
>>231
おお、良いこと言った!
233デフォルトの名無しさん:2009/06/05(金) 22:02:00
>>231
座標とかだと、配列の方が扱いやすいかも
構造体の方が見やすいけどね
234デフォルトの名無しさん:2009/06/06(土) 08:55:20
C++ code - 50 lines - codepad
ttp://codepad.org/imFgWQsK
これからdoxygenでhtmlドキュメントを生成させると、
メンバ一覧のページの上にある目次の部分は
すべてのメンバ一覧
Public メソッド
void foo (bool)
void foo (short)
void foo (int)
void foo (long)
void foo (double)
void bar (bool)
void bar (short)
void bar (int)
void bar (long)
void bar (double)
となります。このように並ぶと微妙に見づらいので
すべてのメンバ一覧
Public メソッド
foo系のメンバは
 void foo (bool)
 void foo (short)
 void foo (int)
 void foo (long)
 void foo (double)
bar系のメンバは
 void bar (bool)
 void bar (short)
 void bar (int)
 void bar (long)
 void bar (double)
の様にコメントをこの場所に入れたいしたいのですが、可能でしょうか?
235デフォルトの名無しさん:2009/06/06(土) 09:13:44
>>234
マニュアルの「Grouping」(日本語版マニュアルだと「グループ化」)のページを見てください
236デフォルトの名無しさん:2009/06/06(土) 09:55:14
>>235
それで出来るのですね。
ありがとうございます。見てきます。
237デフォルトの名無しさん:2009/06/06(土) 11:53:22
doxygenで作ったthtmlドキュメントの
若干ながらフォントサイズが小さすぎると感じます。

このフォントサイズを大きくすることはできますか?
238234:2009/06/06(土) 20:44:39
C++ code - 17 lines - codepad
ttp://codepad.org/vf7DFqYq
とりあえずこの様にしてみました。
/** document former */
がメンバ関数全部について、
/** document latter */
がメンバ関数void func_1_InGroup1()だけにつくかと期待したのですが、
結果は
void Test::func_1_InGroup1に
document former document latter
と付いただけでした。
どこが誤っているでしょうか?
よろしくお願いいたします。
239234・238:2009/06/06(土) 20:56:51
C++ code - 26 lines - codepad
ttp://codepad.org/wOT4IAlv
とりあえずこれで行けそうです。
・・・法則性がわからない。
240デフォルトの名無しさん:2009/06/06(土) 22:29:27
法則性はその>>238>>239の違いの@nameの有無の部分ですよ。

マニュアルより:

ブロックの開標識の前に、独立したコメント・ブロックを置くこともできます。
このブロックは、@name (または、\name) コマンドを含む必要があり、
グループのヘッダーを指定します。
そうしたければ、グループに関するより詳しい情報をコメント・ブロックに
含めることもできます。
241239:2009/06/06(土) 22:36:14
>>240
doxygen用語の理解が今ひとつ足りなかったようです。
親切にありがとうございました。
242デフォルトの名無しさん:2009/06/07(日) 12:54:49
Use built-in class diagram generator
だと継承に関するクラス階層図がうまく表示されますが、
Use dot tool from the GraphViz package
だとうまく表示されません。

このようなHTMLになってしまいます。
ttp://loda.jp/uploader_nrnrnr/?id=4
(これには再現する簡単なソースとDoxyfile、出来上がったHTMLが含まれています。)

環境はWindows XP SP2で、
doxygenはdoxygen-1.5.9-setup.exeを使ってインストールしました。
GraphVizはgraphviz-2.22.2.msiを使ってインストールしました。

GraphVizの問題だとしたら若干スレ違いかもしれませんが、
よろしくお願いいたします。
243242:2009/06/07(日) 13:43:31
C++ code - 25 lines - codepad
サンプルソースが腐ってたので
ttp://codepad.org/AwsZMCHk
これでお願いします。
244デフォルトの名無しさん:2009/06/07(日) 23:01:58
>>242-243
DOT_FONTSIZEが小さい(デフォルト値は10)のが気になりますが、
正直なところデフォルト設定と余りに違いすぎて、それだけなのかどうかは何とも。

もしこだわって作りこんだ設定でないのなら、一度デフォルト設定に戻して、
最低限必要なところだけ変えるようにしてみてはどうでしょう?

デフォルト設定にはメニューから[Settings]→[Reset to factory defaults]で戻せます。
245デフォルトの名無しさん:2009/06/08(月) 00:35:20
>>242
どこを問題視したいのか判らんが、HAVE_DOTがNOだからクラス階層図が出ないのは当たり前なんだが。
つーか、>>244も含めて
Doxyfile位真面目に読んでくれ。
246242:2009/06/08(月) 06:55:17
>>244-245
ありがとうございます。
教えを頼りに読んできます。
247244:2009/06/08(月) 08:39:21
>>242, >>245
>>242のドキュメントではdotファイルが吐かれてるし、
クラス階層図はdotファイルの内容どおりに生成されてます。
文字が読めないのはフォントサイズが4のためです。
コラボレーション図はdotにノードがなぜか出力されてませんが、
画像ファイル自体は真っ白なのが存在していて、
dotファイルの内容どおりには生成されているといえます。

なので、これらはHAVE_DOT=YESの状態で生成されたはずです。
DoxyfileはHAVE_DOT=YESにする前に保存したものと思われます。
dotの中身が異常なので、ほかに問題があると思います。
248デフォルトの名無しさん:2009/06/08(月) 15:59:54
Doxygenて
__declspec(dllexport) int WINAPI MyFunc(int arg);
とか、それを簡略化して
#define API(type) __declspec(dllexport) type WINAPI
とした場合に
API(int) MyFunc(int arg);
みたいな宣言もちゃんと処理してくれる?
249242:2009/06/08(月) 16:17:43
>>247
ありがとうございます。
全然こだわって作りこんだ設定ではありませんので、
デフォルトに戻すことに抵抗はありません。

いろいろ教えの通り試してみます!
250デフォルトの名無しさん:2009/06/08(月) 22:09:14
http://appleloader.bbsnow.net/pic_loader/nomal/html/1_11.html
Exportタブに何も表示されないのですがバグですか・・・?

ノートPCでは表示されました

両方 WinXP 32bit SP3 です
251デフォルトの名無しさん:2009/06/08(月) 22:48:53
>>248
__declspec()は関数と誤認識されるので、
PREDEFINED で __declspec(x)= を定義するなどして、
プリプロセス時に取り除いてやる必要があります。
(マニュアルの「Preprocessing」に書かれてます)
252デフォルトの名無しさん:2009/06/08(月) 23:24:43
>>250
eeepc + winxp でやってるけど、ウチも全く同じ現象になるよ。
253250:2009/06/09(火) 19:08:32
レスありがとう。

じゃあエクスポートタブの設定はできないのですかね・・・?

日本語マニュアルを作成したいので以下の設定をしたいのですが

設定する箇所は2箇所です。まずProject内にある「OUTPUT_LANGUAGE」をJapaneseにします。これで日本語マニュアルが作成されます。ただ、このままだと文字化けが起こります。

 続いて、Inputの中にあるINPUT_ENCODINGに「CP932」と文字を打ちます。CP932というのはMicrosoftなどが拡張したShift-JIS文字コードです。Visual Studioなどのソースコードはこの文字コードを指定するとDoxygenでうまく読み込んでくれます。

改善方法分かる人いたらアドバイスください よろしくお願いします
254デフォルトの名無しさん:2009/06/09(火) 19:38:26
>>253
設定内容を保存したファイルはテキストなので、直接編集できますよ。
255250:2009/06/09(火) 19:54:02
>>254
お!
ありがとうございます
256デフォルトの名無しさん:2009/06/09(火) 21:16:16
>>255
念のため。
PROJECT_NAME 等に日本語を使ってる場合、UTF-8で保存されてるので気を付けて。
257デフォルトの名無しさん:2009/06/11(木) 21:35:53
doxygen20090611.zip - uploader_nrnrnr
ttp://loda.jp/uploader_nrnrnr/?id=5
このaaaaaa.hとDoxyfileからdoxygenでhtmlドキュメントを生成させると、
 aaaaaa.h
 ソースコードを見る。
 マクロ定義
 #define ABS(x)
 #define MAX(x, y)
 #define MIN(x, y)
 #define MYMACRO "表示されたくない。"
このように表示されるのですが、私は最後の
 #define MYMACRO "表示されたくない。"

 #define MYMACRO
の様にしたいと思っております。
また、各マクロの説明文にある
 値:〜〜
というのも非表示にしたいと思います。

どうすればよろしいでしょうか?
258デフォルトの名無しさん:2009/06/11(木) 22:23:30
関数テンプレートなどの
テンプレート引数を出力する項目は作れませんか?
259デフォルトの名無しさん:2009/06/12(金) 01:24:59
>>257
MAX_INITIALIZER_LINES を 0 にするのはどうでしょう?
変数の初期値なども全部表示されなくなりますが。
260デフォルトの名無しさん:2009/06/12(金) 01:58:14
>>258
@tparamで出来るらしいです。
261258:2009/06/12(金) 08:02:39
>>260
ありがとうございます。
助かります。
262257:2009/06/12(金) 19:21:47
>>259
MAX_INITIALIZER_LINESを0にする方法でいけそうです。
ありがとうございます。
263デフォルトの名無しさん:2009/06/12(金) 19:54:28
doxygenの公式サイト(英語版)
が見たいのだが、リンクが死んでいる気がする。

それとも単に落ちただけだろうか?
264263:2009/06/12(金) 23:59:05
単に落ちただけだったようだ。
勝手に騒いでスマソ。
265デフォルトの名無しさん:2009/06/20(土) 18:37:54
保守
266デフォルトの名無しさん:2009/06/20(土) 21:38:29
Windows XP SP2, doxygen 1.5.9です。
Sample.h
ttp://codepad.org/Fijir9gC
これでhtmlドキュメントを生成させますと、
クラス階層図(継承関係)
が表示されません。
class Sample は std::runtime_error をpublic継承しているので
この継承の様子をGraphVizでグラフ表示させたいと思っているのですが、
どうすればよろしいでしょうか?

ソースとDoxyfile、出来上がったHTMLは
ttp://loda.jp/uploader_nrnrnr/?id=7
です。
同じDoxyfileを使っても、関数の呼び出し関係は
うまくGraphVizでグラフ化されて表示されています。

よろしくお願いいたします。
267デフォルトの名無しさん:2009/06/20(土) 22:08:18
>>266
HIDE_UNDOC_RELATIONS が YES だからじゃないかと思いますが、
NO にしてもライブラリからの継承まで図に含めてくれるかどうか。
INCLUDE_PATH にコンパイラのヘッダファイルのパスの設定もして試してみてください。
268266:2009/06/20(土) 23:31:56
>>267
HIDE_UNDOC_RELATIONS
をNOにしたところ、
> INCLUDE_PATH にコンパイラのヘッダファイルのパスの設定
これをしなくても希望通りになりました。

ttp://imagepot.net/view/124550817681.jpg

感謝感激です。
どうもありがとうございました。
269デフォルトの名無しさん:2009/06/26(金) 21:24:59
保守
270デフォルトの名無しさん:2009/07/02(木) 07:40:28
>>250
どうもパネル作成時のミス?のようです。
Exportタブの中身はWizardタブと同じように左右分割されているらしく、
「左側の何も無いパネル」「右側の設定パネル」という風になっています。
それで「左側の何も無いパネル」の幅が最大になっているため、
何も表示されていないように見えるようです。

マウスを右端に移動させるとカーソル形状が変化しますので、
そのまま左にドラッグすると設定内容のパネルが見えるようになりました。
271270:2009/07/03(金) 02:55:10
少し訂正
左右分割だけではなく左側が上下に分割された3ペイン方式でした。
「左側の何も無いパネル」のように見えるますが下のほうに移動してるだけでした。
270と同じように下から上にドラッグすると表示物が見えるようになります。
272デフォルトの名無しさん:2009/08/08(土) 18:05:25
保守
273デフォルトの名無しさん:2009/08/08(土) 18:32:18
Windows XP SP2, doxygen 1.5.9です。

ttp://loda.jp/uploader_nrnrnr/?id=9
このSample.hを同じくこのDoxyfileで
HTMLドキュメント化したのですが、
文字サイズが小さくて困っております。
DOT_FONTSIZE = 100
FORMULA_FONTSIZE = 100
の様にしてみても、フォントサイズが変わりません。

sakura-editor: クラス CDlgCancel
ttp://sakura-editor.sourceforge.net/doxygen/classCDlgCancel.html
ここにあるような
文字サイズにしたいのですが、どうすればよろしいでしょうか?
よろしくお願い申し上げます。


274デフォルトの名無しさん:2009/08/08(土) 20:32:24
>>273
ドキュメント見てみたけど普通の文字サイズだと思うけど。
そういえば最近のバージョンはちょっと前のより文字サイズ小さいかも。

DOT_FONTSIZE はグラフの文字サイズ、FORMULA_FONTSIZE は式の文字サイズです。

文字サイズを変えるにはスタイルシートをカスタマイズすることになると思う。
やったことないけど、マニュアルによると、

doxygen -w html header.html footer.html stylesheet.css
でデフォルトのファイルを出力して、それを書き換えて

Doxyfile の HTML_STYLESHEET でそのファイルを指定するらしいです。
275273:2009/08/08(土) 21:27:14
>>274
その方法で解決できました。
文字サイズは見る人によって好みがあると思っていましたので、
stylesheet.cssのフォントサイズ指定の部分を削除しました。
これにより人によって好みの文字サイズにブラウザ側で変更できるようになりました。
(前はブラウザ側でも文字サイズの変更が(通常操作の範囲では)できませんでした。)

どうもありがとうございました。
276デフォルトの名無しさん:2009/08/12(水) 12:31:12
Doxygen
で表を表示する方法を教えてください。

ttp://www.doxygen.jp/htmlcmds.html
ここの<table>タグ以外にはありますか?
277デフォルトの名無しさん:2009/08/12(水) 12:45:02
Doxygenはドキュメント生成ツールであってドキュメント記述言語ではないから
適宜表は表示されるよ。例えば関数一覧とかファイル一覧とか。

任意の表を記述したいと言うことなら話は別で。
元々html自体に表を記述するタグはtable以外にはないに等しいからねぇ。
横方向に高々2カラムしかないなら<ul>などで代用できなくもないけれど。
278276:2009/08/12(水) 13:14:58
>>277
ありがとうございます。
良さそうなのでもうすこしマニュアルを読み込んできます。
279デフォルトの名無しさん:2009/08/14(金) 02:53:06
>>276-278
私も任意の表をお手軽に作る方法はないかなと思ってました。

今ふと思いついたんですが、関連のタグの組み合わせをALIASESで簡略化したらちょっとはマシかも。
280デフォルトの名無しさん:2009/08/21(金) 00:30:09
保守
281デフォルトの名無しさん:2009/08/22(土) 01:18:19
Doxygen 1.6.0 age
282デフォルトの名無しさん:2009/08/22(土) 16:54:46
Doxygen 1.6.0で何か変わったことある?
設定とかは変わってないよね?
また設定しなおしとか嫌よ。
283デフォルトの名無しさん:2009/08/23(日) 04:04:54
>>282
二重引用符で囲っていた中で @a とか使ってたのが利かなくなってましたorz
まんま " @a hogehoge "な具合に表示されてます。

バグなのか仕様変更なのかは知りません。
284282:2009/08/23(日) 11:47:44
>>283
ありがとうございます。
私は@ではなく\で書いているので問題ないですかね。
285283:2009/08/23(日) 19:42:34
>>284
それは試してないのでわかりません。

以前のバージョンから、「@」は利かなくて「\」なら利く局面もありましたから、
(例えば @dot 内の URL パラメータに \ref を使うとか)
もしかすると問題ないかもしれません。

なお、「"」の代わりに「"」を使えば、「@a」も機能しました。
ソースコメントでの視認性を考えるとやりたくないですが。
286283:2009/08/23(日) 19:45:40
>>285
あ、「”」の代わりに「&quot;」です。
(今度はちゃんと表示されるかな)
287282:2009/08/23(日) 20:21:51
>>285-286
なるほど。
詳細 誠にありがとうございます。

今のdoxygenで問題がないので、
念のためdoxygenバージョンアップするのは
控えておこうかと思います。
288283:2009/08/24(月) 02:03:19
補足です。

>>283 のような状況になっているということはつまり、
二重引用符で囲まれている部分が区別されるようになったということで、
いままで単純に1文字として「"」を使ってた部分や、
うっかり片方の引用符を忘れていた部分でエラーが出ます。
289どxyげん:2009/08/24(月) 10:56:52
doxygenで生成される、
左側の目次(ツリービュー)を自分が好きに
並べる方法している方いらっしゃいませんか?

誰か教えてください。
290デフォルトの名無しさん:2009/08/25(火) 22:33:39
Doxygen 1.6.1 age
291デフォルトの名無しさん:2009/08/29(土) 14:36:45
Windows XP SP2, doxygen 1.6.1です。
ttp://loda.jp/uploader_nrnrnr/?id=10

このhoge.hを同じくこのDoxyfileで
HTMLドキュメント化したのですが、
クラスの構成のところで説明の最初の文字が
 http://imagepot.net/view/125152409985.gif
の様に大文字になってしまいます。

自動的に大文字にしてくれるこの仕様を回避したいのですが、
どうすればよろしいでしょうか?
よろしくお願い申し上げます。

なお、doxygen 1.5.9でも同様の現象でした。
292デフォルトの名無しさん:2009/09/01(火) 09:31:19
>>291
lodaの方にコメントついてる。
293291:2009/09/01(火) 18:05:12
2chの方ばかり見ておりました。
ありがとうございます。
294291:2009/09/01(火) 20:42:47
と思いましたら解決しませんでした。
\ mynamesp::hogeクラスです。とすると、不要な半角の\が入ってしまいます。
! mynamesp::hogeクラスです。とすると、不要な半角の!が入ってしまいます。
 mynamesp::hogeクラスです。とすると、doxygenの抱えるバグ(*)により、mynamesphogeとなってしまいます。
(*)全角文字に半角英数が続き、スコープ解決演算子である::がその後ろに来たとき、::が無視されるというバグです。
どうしたらいいでしょうか?

http://loda.jp/uploader_nrnrnr/?id=10&dsq=15701579#comment-15701579
で質問させていただいている者です。
295デフォルトの名無しさん:2009/09/02(水) 01:21:01
>>294
lodaのコメントは、行頭に「\」や「!」を入れるのが
大文字化されないための書き方という意味じゃなくて、
文の先頭にクラス名がこない書き方を工夫すればという意味だと思う。

# 一覧表以外のところでは大文字化してないから、個人的にはバグじゃないかと思うけど。

「::」が消える件は >>211-213 を参照。
296291:2009/09/02(水) 06:54:56
>>295
私もバグではなく仕様だとは思っています。

::が無視されるのはバグですが。
最速で>>187さんが触れてますね。

どうもありがとうございました。
297デフォルトの名無しさん:2009/09/04(金) 08:46:55
プログラミング言語によっては全角文字も識別子に使えることを考えると、
文中に空白で区切られずに書かれてる識別子を正しく認識して欲しいというのは、
日本語の構文を理解する必要のある無茶な要求じゃないかな。
298デフォルトの名無しさん:2009/09/04(金) 12:51:33
そうか?
別に煽りたい訳じゃ無いけど、消えてしまうのは文字コードの問題だと
考えるのが普通では?
だって構文解析いらないでしょ。
299297:2009/09/05(土) 01:43:17
>>298
消えてしまうのはバグだと思うけど、
クラスメンバを認識して自動的にリンクを張る機能があるんだから、
その過程で「::」を特別扱いしてると思うのよ。

ていうかごめん、言葉が足りなかったわ。
言いたかったのは、バグが起きにくい書き方をするように
歩み寄ってもいいんじゃないかということなんで。
300デフォルトの名無しさん:2009/09/10(木) 14:47:25
1.6.1を入れたのだけど、doxywizardで項目名が赤くなるのはどういう意味?
301デフォルトの名無しさん:2009/09/10(木) 19:41:01
>>300
1.6.1前からでも赤くなかった?
おそらくデフォルト値から変更された物が赤いんじゃないかと思われる。
302300:2009/09/10(木) 20:03:13
>>301
どうもありがとう。確かに入力すると赤くなり、消すと黒くなるから変更されたところだ。
前は1.5.6を使っていただけど赤くはならなかったので、最初はエラーかと思った。
303デフォルトの名無しさん:2009/09/14(月) 00:04:39
Javaで使っているのですが、クラス階層図や関数の呼び出し図などで、
クラス名がパッケージ名を含む長い名前になるのを避ける方法はあるでしょうか?
例えば、以下のサンプルですと、図からorg.byteml.の部分を取り除きたいです。
http://byteml.sourceforge.net/html/classorg_1_1byteml_1_1serialize_1_1ByteMLBuilder.html
304デフォルトの名無しさん:2009/09/16(水) 00:28:43
doxygenで、C++でhtmlドキュメントを作りたい時、
 ここからここまでの範囲のソースはドキュメントしないでね
あるいは
 このクラスはドキュメント化しないでね(ドキュメントに載せないでね)
といった指示はできるのでしょうか?

よろしくお願いいたします。
305デフォルトの名無しさん:2009/09/16(水) 03:34:57
>>304
素直な方法は、ドキュメント化したい部分に一通りdoxygen用のコメントをつけて、
EXTRACT_ALL は NO にして、
HIDE_UNDOC_MEMBERS と HIDE_UNDOC_CLASSES を YES にすることでしょうか。

そうすれば、コメントの付いている部分だけがドキュメント化されます。
306デフォルトの名無しさん:2009/09/16(水) 07:05:22
>>305
ありがとうございます。
私は
> EXTRACT_ALL は NO にして、
> HIDE_UNDOC_MEMBERS を YES に
まではしているのですが、
HIDE_UNDOC_CLASSES
はNOにしています。
というのも、YESにするとドキュメント化したいクラスが
標準ライブラリや他人のライブラリ(doxygenコメント化されていない)
の中のあるクラスを継承しているクラスであった場合、
継承関係がグラフ化されなくなってしまうからです。

かといってこのままでは実装用のクラスまでも
HTMLドキュメントに出て来てしまうのが
ちょっと気持ち悪いので、悩んでおります。
307デフォルトの名無しさん:2009/09/17(木) 01:10:31
>>306

doxyfile で
PREDEFINED = NO_DOXYGEN
としておいて、ヘッダの方で

#ifndef NO_DOXYGEN
実装用クラス
#endif

とか私はやってます。
308306:2009/09/17(木) 06:59:25
>>307
ありがとうございます。
そんな方法があったんですね。
309307:2009/09/17(木) 16:45:15
>>308

後で見返してよく考えたら「NO_DOXYGEN」だと意味逆でしたね。
まあそれはともかく、この方法を使うと、
たとえば利用者マニュアル用 doxyfile と
内部開発者用 doxyfile とかを使い分けて
(それぞれ別々の PREDEFINED を設定しておく)、
コード内では #ifndef を使ってマニュアルに出したいものを制御
なんてこともできます。
310306:2009/09/17(木) 21:03:18
>>309
なるほど、深いですね。
面白そうです。
ありがとうございます。
311306:2009/09/18(金) 00:20:10
#ifndef DOXYGEN
実装用クラス
#endif
としてみましたが、
クラス一覧に相変わらず実装用クラスが出力されます。

 doxygen 1.6.1, Windows XP SP2
Doxyfileは
 ttp://loda.jp/uploader_nrnrnr/?id=11
です。

恐れ入りますが、>>307さんのdoxygenのバージョンはいくらでしょうか?
312306:2009/09/18(金) 00:20:56
ちなみにちゃんと
#ifndef DOXYGEN
になっています。
#ifdef DOXYGEN
だったりはしません。
よろしくお願いいたします。
313307:2009/09/18(金) 01:26:34
>>311-312

doxyfile 拝見しました。
1312 行目の EXPAND_AS_DEFINED の方にマクロ名が記述されて
いるようなんですが、これを 1305 行目の PREDEFINED の方に
記述して試してもらえますか?

ちなみに、私が使用している環境は 1.6.1 で
OS は主に Mac OS X と FreeBSD です。
(一昨日くらいまで 1.5.9 使ってましたけど。)
あ、でも doxyfile は 1.5.8 の時につくったものでした。
314デフォルトの名無しさん:2009/09/18(金) 09:44:38
>>312
お前、馬鹿だろw
>307を読めば判ることで何とち狂ってるんだか。
315306:2009/09/18(金) 11:12:07
>>313
申し訳ございません。
ご指摘の通り大変みっともない間違いをしでかしており、
恥ずかしいかぎりです。

うまく動きました。
ありがとうございました。
316デフォルトの名無しさん:2009/09/18(金) 12:01:39
ttp://codepad.org/ACEXhsw8
これをdoxygenに食わせると、
クラス->構成のところで
 exception
 NS::hoge
となります。
 画像:ttp://imagepot.net/image/125324281122.jpg
つまり何故かstd::が出力されません。
(解説本文にはstd::が出力されるのですが。)

これを
 std::exception
 NS::hoge
と表示させたいのですが、何か方法はありますでしょうか?

よろしくお願いいたします。
317307:2009/09/18(金) 12:08:01
>>314

まあまあ。
マニュアル読むと、PREDEFINED と EXPAND_AS_DEFINED の説明は
確かにかなり紛らわしいのよ。試行錯誤の過程で勘違いしても仕方がない。
私もかつては戸惑った口。

>>315

お役に立てて何よりです。
318デフォルトの名無しさん:2009/09/18(金) 12:25:36
doxygen 1.5.8を使っているんだけど、例えばstd::vector<std::vector<int>>が通らないのね。
きちんと> >にしないといけないらしい。
319デフォルトの名無しさん:2009/09/18(金) 12:55:10
>>318
C++はC++0xになるまではそうでしょ?
コメント文でもそうだってことかい?
320デフォルトの名無しさん:2009/09/18(金) 12:57:05
>>319
いやいや、会社でほたえちょる阿呆がおったからソースを見たら、>>で書いていたってことで。
それで気づいたんだが、VC++はエラーにしてくれないんだね。
321デフォルトの名無しさん:2009/09/18(金) 13:47:50
>>320
そうなのか。
まあどうせC++0xでは認められるんだから
VC++もエラーじゃなくていいんじゃね。

322デフォルトの名無しさん:2009/09/18(金) 17:00:22
ttp://www.doxygen.jp/grouping.html#memgroup
これで生成した
ttp://www.stack.nl/~dimitri/doxygen/examples/memgrp/html/class_test.html
ですが、
今のdoxygen 1.6.1で実行しますと
 Public Member Functions

 Group2
等のグループ名が改行の余白無く上にくっついて表示されませんか?
ttp://www.doxygen.jp/grouping.html#memgroupに限らず任意のファイルを
htmlにしても起こると思うのですが、皆様はどうでしょうか?
323デフォルトの名無しさん:2009/09/19(土) 12:08:12
>>322
私の方でも同じ現象が出てます。
自分の書き方が悪いのかもと思いつつ、
ほとんど追求してませんでしたけど。
324322:2009/09/19(土) 13:07:25
>>323
ありがとうございます。
私は同じsourceで
Doxygen1.5.9→1.6.1のアップグレードで症状が発生したため、おそらく仕様変更に伴う不具合だと思っています。
じき直ると期待しています。
325デフォルトの名無しさん:2009/09/20(日) 11:44:49
> BUILTIN_STL_SUPPORTオプションをオンにしない限り、doxygen は STL クラス
を認識しません。
> STLクラス (std::string, std::vector など) を使っていても、STLソース (そ
のタグファイル) を入力としてインクルードしたくない場合は、このタグを YES
にしてください。 するとdoxygenは、STLクラスを引数に含む関数宣言と定義 (た
とえば、func(std::string); と func(std::string) {}) をマッチングします。
また、STLクラスを含む継承・コラボレーション図をより完璧で正確にすることも
できます。

といった説明がDoxygen日本語マニュアルにあるのですが、いまひとつ意味がわか
りません。

要するにBUILTIN_STL_SUPPORTはデフォルトでYESにしてしまえば良いわけでしょうか?
それとも何がデメリットがあるのでしょうか?
326デフォルトの名無しさん:2009/09/23(水) 01:46:24
>>325
Doxywizard で、 BUILTIN_STL_SUPPORT にカーソルを持っていったときに
表示される説明は、もう少し分かりやすいです。
STL のクラスを使ってるけど STL のソースをインクルードしたくない場合に
YESにするようにと書いてます。

ファイルの読み込みを抑えたいような場合でしょうか。

逆に処理系付属のヘッダも読み込む設定にしていて、 BUILTIN_STL_SUPPORT も
YES にすると、二重定義のような状況になるんじゃないかと思います。
327325:2009/09/23(水) 11:39:21
>>326
ありがとうございます。

ちなみに
Yahoo!検索 - BUILTIN_STL_SUPPORT
ttp://search.yahoo.co.jp/search?p=BUILTIN_STL_SUPPORT&search_x=1&tid=top_ga1_sa&ei=UTF-8&pstart=1&fr=top_ga1_sa&b=11&qrw=0
こんな感じになりました。
どうやら大半の方がデフォルト値のNOにしているようです。
328316:2009/09/26(土) 18:13:55
どなたか>>316の解決策をご教示いただける有識者はいらっしゃいませんでしょうか?

どうかよろしくお願い申し上げます。
329デフォルトの名無しさん:2009/09/26(土) 19:33:05
>>316
その参照してるだけで定義の無いexceptionをエントリとして出せるオプションがあるの?
330316:2009/09/27(日) 01:04:43
>>329
HIDEUNDOCMEMBERSをNoにして、出力させるとこうなりました。
331316:2009/09/27(日) 10:43:25
>>329
EXTRACT_ALL は NO
HIDE_UNDOC_MEMBERS は YES
HIDE_UNDOC_CLASSES は NO
でした。

332デフォルトの名無しさん:2009/09/27(日) 13:24:58
/** \page hojodocs 補助ドキュメント
*/
としますと
ttp://uploader.rgr.jp/src/up1067.gif
の様に
「メインページ」「クラス」「ファイル」というタブと並んで「関連ページ」というタブが出来て
その中に補助ドキュメントというページが出来ます。

これを
「メインページ」「クラス」「ファイル」というタブと並んで「補助ドキュメント」というタブが
出来るようにする方法はありませんでしょうか?

単純に/pageを何か適当な物に変えれば良いのではないかと探ってみたのですが
どうしても分かりませんでした。

よろしくお願いします。
333デフォルトの名無しさん:2009/09/27(日) 21:39:45
>>331 うちではexceptionクラスそのものが出なかった。
334316:2009/09/27(日) 22:56:11
>>333
左様でございましたか。失礼いたしました。

私の環境は
 doxygen 1.6.1, Windows XP SP2
で, Doxyfile, hoge.h, 成果物htmlは
 ttp://loda.jp/uploader_nrnrnr/?id=15
です。
お手数おかけ致しますが、こちらでいかがでしょうか?
335デフォルトの名無しさん:2009/10/01(木) 01:53:57
>>304-315
今更だけど、別の方法があったので。
@cond と @endcond で囲んだ範囲は、
@cond につけたラベルを ENABLED_SECTIONS に含めるかどうかで、
ドキュメント化するかどうかを設定できるようです。
336デフォルトの名無しさん:2009/10/01(木) 10:49:27
>>335
こりゃいいやと試してみた。
@condと@endcondは独立したコメントブロックにないと巧く認識しないみたいで、ちょっと悩んだ。
# つまり、前後の空行を詰めるとダメっぽい。
それと、処理させないだけならセクションラベルは要らないのだけれどundocumentedにしたのは深謀遠慮。
--
/// \file foo.h
///

/// \cond undocumented

/// \brief Dummy.
/// あーだこーだ
class dummy {
public:
dummy() {}
};
/// \endcond

/// \brief Foo.
/// どーでこーで
class foo {
public:
foo() {}
};
--
# どうでもいいけど、JAVADOC_AUTOBRIEFはyesなので念の為。
337304:2009/10/01(木) 10:51:57
ありがとうございます。
プリプロセッサを使った方法はエディタで対応する最初と最後をすぐ見つけらられるという利点がありますが、
@condと@endcondを使った方法はコメントだけで解決する->ソースに手を加えてはいないという点が利点ですね。

338デフォルトの名無しさん:2009/10/06(火) 16:41:43
Windowsでいろんなコンパイラに対応できるライブラリを書いてるんだけど,VC++だと
クラスのコンストラクタには呼び出し規約 __fastcall が使えないので,ヘッダファイルに
以下のような定義を書きました(コンストラクタの先頭に書いておくために)。

#if defined(_MSC_VER) //VC++の場合空文字
#define __FASTCALL
#elif //その他のコンパイラの場合は__fastcall
#define __FASTCALL __fastcall
#endif

これをDoxygen(1.6.1)でドキュメント化するとき,_MSC_VERが定義されている時と定義されていない
時の説明が両方出るようにしようと思って,いろいろやってみたけどうまく行きません。

上の例はDoxygen用のコメント付けはしていませんが,Doxyfileで PREDEFINEDに_MSC_VER と
!_MSC_VER の両方を書いておくと,両方の #define__FASTCALL がドキュメント化されるところまでは
良かったのですが,行末に ///> で異なる説明を書いても両方の説明に同じものが(マージされて)
出てきてしまいます。

良い方法があったら教えてください。
339338:2009/10/06(火) 16:59:07
>>338
ちょっと間違い。上の例で #else のところが #elif になってしまっているので
修正したら,_MSC_VER と !MSC_VER を両方 PREDEFINED に書いておく
という手は使えませんでした。結局 PREDEFINED にどう書くかで,
片方のドキュメントしか作成されません。
340304:2009/10/06(火) 18:24:02
>>339
PREDEFINEDでできませんか?

つまり
PREDEFINED = DOXYGEN_SHOULD_SKIP_THIS
とすれば

#ifndef DOXYGEN_SHOULD_SKIP_THIS

#if defined(_MSC_VER) //VC++の場合空文字
#define __FASTCALL
#elif //その他のコンパイラの場合は__fastcall
#define __FASTCALL __fastcall
#endif

#elif /* DOXYGEN_SHOULD_SKIP_THIS */

/*! 説明を入れる。
*/
#define __FASTCALL

#endif /* DOXYGEN_SHOULD_SKIP_THIS */

341339:2009/10/06(火) 18:54:46
>>340
さすがに両方の説明を個別に表示することは出来ませんが,それで事足りますね。
ありがとうございました。

この方法使うと,Doxygenがスキップしない部分には,

#define __FASTCALL "" or __fastcall

とかメチャクチャ書けますねw
342デフォルトの名無しさん:2009/10/07(水) 04:18:00
>>338
/// @def __FASTCALL
/// ここに両方の場合の説明を書けばいいんじゃないの?
343デフォルトの名無しさん:2009/10/07(水) 04:18:44
__FASTCALL は C++ では予約識別子だな。やめといたほうがいいぞ。
344デフォルトの名無しさん:2009/10/07(水) 06:37:33
確かに。
予約されているから規格的に言えば未定義の動作になるな。
345339:2009/10/07(水) 10:26:51
>>342
それだけだと,#define __FASTCALL あるいは #define __FASTCALL __fastcall のどちらかしか
ドキュメント化されないので...>>340の方法だと,>>341のようにコンパイラでコンパイルされると
困るようなメチャクチャな説明をドキュメント化できるのでわかりやすい。

理想的には,

#define __FASTCALL
      VC++ではコンストラクタに__fastcallが使えないので空文字として定義される

#define __FASTCALL __fastcall
      VC++以外では__fastcallとして定義される

みたいにドキュメント化されるといいんだけど,難しそうなので>>341に書いたように

#define __FASTCALL (null string) or __fastcall
      VC++ではコンストラクタに__fastcallが使えないので空文字として定義される。VC++以外では__fastcallとして定義される。

のようにドキュメント化されれば実用上は問題ないと思う。


>>343
大文字の方も予約されてるとは知らなかった。ありがと〜。
346デフォルトの名無しさん:2009/10/07(水) 10:48:29
>>345
メチャクチャな説明がわかりやすいとか、おかしなことを言うね。
実用上問題なければ奇怪な書き方しないほうがいいだろうと思うし。
347340:2009/10/07(水) 18:07:29
>>346
別にメチャクチャはまあ言葉のあやなんじゃないですかね。

オフィシャルでも
ttp://www.stack.nl/~dimitri/doxygen/
> You can even `abuse' doxygen for creating normal documentation (as I did for this manual).
と言っているぐらいですし
多少の奇怪な書き方は許容範囲では?
タダの宗教論争になってしまいますが。
348デフォルトの名無しさん:2009/10/07(水) 18:58:23
>>347
それを指摘するのは無粋。つーか、間抜け。
349デフォルトの名無しさん:2009/10/08(木) 01:46:49
>>347
許容範囲なんだろうけど、ここでは奇怪な書き方をする必要がない、という話。
350デフォルトの名無しさん:2009/10/10(土) 07:47:27
351デフォルトの名無しさん:2009/10/13(火) 10:41:56
寧ろ、doxygen.cssをカスタマイズしている人には紹介してほしいなぁ。
ソースを公開しろとまでは言わないから。
後は、こんなのが欲しいなんてリクエストでもあれば創造意欲が沸くかも知れない。
352デフォルトの名無しさん:2009/10/13(火) 21:08:49
しかしデフォルトのにしておかないと
将来のバージョンアップに毎回追随するのが
結構つらくなるのではと予感。
353デフォルトの名無しさん:2009/10/17(土) 13:41:17
バージョンアップでかっこよくなったりするし
354デフォルトの名無しさん:2009/10/18(日) 10:45:33
ttp://www.doxygen.jp/manual.html
このサイト死んだね。
355デフォルトの名無しさん:2009/10/18(日) 11:55:33
う、うん……(´・ω・`)
356デフォルトの名無しさん:2009/10/18(日) 22:36:09
>>354
生き返った。
良かった良かった。
357デフォルトの名無しさん:2009/10/28(水) 15:51:53
privateなメンバのうち、(純粋)仮想関数だけをドキュメントに出力する方法ってないものでしょうか
EXTRACT_PRIVATE = YESとすると、見せたくないprivate変数や非仮想関数まで出てきてしまうのがイヤで・・・
358デフォルトの名無しさん:2009/10/28(水) 23:24:18
>>357
そんな状況いままで無かったからな。
初めて考えてみる。

>>340が書いた方式を駆使して
どうにかできそうな気もするが良いアイディアが浮かばない。

359デフォルトの名無しさん:2009/11/10(火) 14:57:36
Doxygen 1.6.1 をソースパッケージから VC8 でビルドしようとしたのですが src/translator_*.h
が言語毎にいろいろなエンコーディングで保存されていて文字列リテラルの部分でエラーが大量発生する
(おそらく多バイト文字に '\' や '"' が含まれる) のですが、Windows でビルドするときは特別な
手続きがいるのでしょうか?
360デフォルトの名無しさん:2009/12/05(土) 01:55:28
クラスメソッドの詳細の、“コンストラクタ・デストラクタ”のセクションに
デストラクタが入らないのはdoxygenのバグだよね?
あと、@nameコマンドで1つのクラスに同じ名前のメンバグループを
複数作った場合、それぞれが別のグループとして吐き出されるのは仕様?

あ、どっちも1.6.1の話ね
361デフォルトの名無しさん:2009/12/05(土) 12:30:58
>>360
> クラスメソッドの詳細の、“コンストラクタ・デストラクタ”のセクションに
> デストラクタが入らないのはdoxygenのバグだよね?
マジで?
試してくる。
362361:2009/12/05(土) 12:35:42
>>360
Version 1.6.1 にて出力されたぞ。

出力されないソースないしヘッダの例をうpしてくれれば確かめるけど?
363360:2009/12/07(月) 16:44:48
>>362
ソースはマニュアル内のこのページ(ttp://www.doxygen.jp/docblocks.html)の
サンプルをそのまま使用
本体のバグでないならヘッダの問題かと思い、いろいろ試してみた結果、
INPUT_ENCODING=Shift_JISにした時に問題が起きた(CP932なら問題無し)
ちなみに、出力されないわけじゃなくて、通常の関数と同じセクションに
デストラクタが入ってる

デストラクタ名がチルダでなくオーバーバーで表示されてたので、
doxygenがデストラクタと認識してくれないのが原因か?
364デフォルトの名無しさん:2009/12/07(月) 23:10:54
>>363
CP932
にしろってオフィシャルでどっかに書いてあったような気がする。
> デストラクタ名がチルダでなくオーバーバーで表示されてたので、
> doxygenがデストラクタと認識してくれないのが原因か?
その可能性が高そうだ。

365デフォルトの名無しさん:2009/12/14(月) 10:46:24
このQtのマニュアルみたいなのを作りたいのですがdoxygenで作れますか。
http://www.kde.gr.jp/~ichi/qt-2.3.2/annotated.html


366デフォルトの名無しさん:2009/12/14(月) 14:13:25
>>365
似たようなことはできると思いますが、一致度は保証できません。
TradeMarkとやらで作ったようなことが書かれているので、それでは如何ですか?
367デフォルトの名無しさん:2009/12/17(木) 02:23:51
>>365-366
Qtのマニュアルは開発元内製の非公開のツールで作られているそうです。
doxygenが作られたのもそれが理由だそうで。
ttp://lists.trolltech.com/qt-interest/2007-07/thread00457-0.html
368デフォルトの名無しさん:2009/12/18(金) 13:27:05
素敵なcssがほしい。
369デフォルトの名無しさん:2009/12/24(木) 13:46:58
EXTRACT_PRIVATE = NO の設定で一部の private 関数を文書化する方法はあるでしょうか?
やりたいことは、ある基底クラスに private の仮想関数を定義して (派生クラスでその仮想関数
をオーバーライドするユーザーのために) その関数の仕様を Doxygen で出力することです。
370デフォルトの名無しさん:2009/12/24(木) 21:33:52
>>369
ちょっと汚いソースになる気もするが、
>>340と同じようにして
Doxygen上にだけprivateをpublicにしちゃえば?
371デフォルトの名無しさん:2009/12/29(火) 09:09:16
ttp://uploader.rgr.jp/src/up1598.png
このように、ソース中の'が'と表示されてしまうんですが、
対策をご存じの方いらっしゃいますか?
また、他の方がたはこの問題が再現しますか?

サンプルソースは
 ttp://uproda.2ch-library.com/lib200801.zip.shtml
 DLキーはdoxygen
です。
ここのget_widechar.hをDoxygenにかけてhtmlを出力させると
上述の画像のようになります。
372デフォルトの名無しさん:2009/12/29(火) 09:40:19
html4ではなくxml1の読めるブラウザを使えばいいんでない?
# 根本は解決していないけど。
例えば、IE6がこれに該当するからIE8を入れるとか。
どうしても根本的に解決したいなら、ソースを修正するとか出力を加工するとか。

つーか、手元のソースとDoxygenでは再現しないしzipをダウンロードするのは嫌なんだけど、
再現できる状態でここに貼れる程度に短くできない? それと、Doxygenのバージョンも宜しく。
373デフォルトの名無しさん:2009/12/29(火) 12:07:45
>>372
確かにIE6で見ていたらだめでしたが、
Firefoxなら正しく表示されました。

ソースは
ttp://codepad.org/7giB9nil
で、Doxygenは1.6.1です。
設定は
DOXYFILE_ENCODING = CP932
OUTPUT_LANGUAGE = Japanese
このぐらいです。
374デフォルトの名無しさん:2009/12/29(火) 13:06:29
手元の1.5.9じゃ再現できないや。1.6.1持ちか詳しい人待ちだな。
375デフォルトの名無しさん:2009/12/29(火) 16:06:24
>>374
意外に1.5.9って1.6.1より動作安定してたりしますよね。

ちなみに画像
ttp://uploader.rgr.jp/src/up1598.png
を出力したhtmlファイル(の一部)は
 ttp://codepad.org/OijY25xj
こんな感じで、この中にある
 '
となっている部分を単純に
 '
に置換してしまえば
IE6, Firefoxともに問題無く表示出来る様です。

・・・ってこんな対策でいいのでしょうか?
'を単純に'に置換してしまってまずい場合とかありますでしょうか?
376デフォルトの名無しさん:2009/12/29(火) 16:51:13
html4.01にはaposがないんだからしょうがないんじゃない?
377デフォルトの名無しさん:2009/12/29(火) 17:23:37
>>376
俺のところのIE6ってそんな準拠性の悪いクソブラウザだったんですか。
噂には聞いていたんですがねぇ。

ありがとうございました。
378デフォルトの名無しさん:2010/01/03(日) 02:55:32
Doxygen 1.6.2 age
379デフォルトの名無しさん:2010/01/03(日) 21:21:40
>>378
まぢすか
入れてきます!
380379:2010/01/03(日) 23:52:47
仕様 変わりすぎだよチクショー!!!!!
381デフォルトの名無しさん:2010/01/04(月) 00:08:12
doxygen.css
の仕様が変わりすぎでございますorz

バージョンが0.01違いなのに、こんなに変わるものだとは。

Doxygenって後方互換性という言葉には興味ないの?
382>>379-381:2010/01/04(月) 21:42:35
俺以外に
Doxygen 1.6.2
を使ってる人 居ないの?
なんだか、
 1. C++0xが公式仕様策定されて
 2. ちゃんと各種コンパイラで実装されて
 3. 現実的にC++0xを使っても大丈夫だと思うくらいになって
 4. Doxygen がC++0xに対応完了
このくらいの条件を満たさないかぎり、別にアップデートしなくてもいい気がしてきた。
ブラウザとか中核ソフトとは違ってセキュリティもクソもない・・・しね?
383デフォルトの名無しさん:2010/01/06(水) 14:43:02
>>382
まだ正月休み明けでみなさん忙しいのでは。
私も先ほどようやく試してみたところ。

ざっと見た感じだと、1.6.1 と比べると
>>322 で指摘されていた不具合とか、
friend関数のマニュアルを無視するバグが直ってたりして、
概ね好印象ですね。
384>382:2010/01/06(水) 20:01:55
>>383
ありがとうございます。

そうですか。
>>324->>324は気付きませんでした。
じゃあやっぱ1.6.2で同じように作れるように自分でどうにか工夫するのが良い
って感じですかね。(私の主体性0)

385>382:2010/01/06(水) 20:19:19
ちなみに
 Doxyfile 1.6.1 デフォルト
 ttp://codepad.org/olhvPmWM
 Doxyfile 1.6.2 デフォルト
 ttp://codepad.org/wA3SWMYO
386デフォルトの名無しさん:2010/01/23(土) 09:24:51
1.6.2に更新したら、pageコマンドから作られたhtmlにタイトルが出力されなくなった…
似たような症状の人いる?
387382:2010/01/23(土) 20:33:41
>>386
おお!
俺も!俺も!
どうすりゃいいんだろうorz
388デフォルトの名無しさん:2010/01/26(火) 07:47:54
>>386-387
pageに付ける名前に英数字以外(下線とか)を含まないように、
というようなことがMLに書かれてました。
389387:2010/01/29(金) 00:03:56
まじか!
>>388
ありがとうございます。
感謝です。。。
390デフォルトの名無しさん:2010/01/29(金) 04:03:10
>>388
トンクス!表示されたぜ!

ML見てきたんだが、
>ドキュメントにアンダーバー不許可と明示されてはいないけど、
>名前は英文字と数字の組み合わせからなる、とは書かれていて、
>そこにアンダーバーは含まれていないでしょ。
みたいな返答だった。

でも以前は使えてたわけだし、@page以外のタグは問題ないし、
ドキュメントが更新された形跡もないし、やっぱなんかバグっぽいよね。
391デフォルトの名無しさん:2010/01/29(金) 06:34:03
>>390
このまま待機で、いつの間にか
(次のverで)修正されるんじゃないかなぁ?

次のverっていつでるんだ。。。
392デフォルトの名無しさん:2010/01/30(土) 15:04:22
>>391
Bugzilla 見たら、次のバージョンで修正されることになってました。
私も別のバグで次のバージョン待ちです…
393デフォルトの名無しさん:2010/01/30(土) 15:52:25
Doxygen Release 1.6.2  (release date 30-12-2009)
Doxygen Release 1.6.1  (release date 25-08-2009)
Doxygen Release 1.6.0  (release date 20-08-2009)
Doxygen Release 1.5.9  (release date 30-04-2009)
Doxygen Release 1.5.8  (release date 27-12-2008)
Doxygen Release 1.5.7.1 (release date 5-10-2008)
Doxygen Release 1.5.7  (release date 28-9-2008)
Doxygen Release 1.5.6  (release date 18-5-2008)
Doxygen Release 1.5.5  (release date 10-2-2008)
Doxygen Release 1.5.4  (release date 27-10-2007)
Doxygen Release 1.5.3  (release date 27-7-2007)
Doxygen Release 1.5.2  (release date 4-4-2007)
Doxygen Release 1.5.1  (release date 29-10-2006)
Doxygen Release 1.5.0  (release date 16-10-2006)
Doxygen Release 1.4.7  (release date 11-06-2006)
394>387 >393:2010/01/30(土) 15:57:14
ということで、次にリリースされるのは
4月終わりごろと推測されます。

うわぁ、待ってられないよ。

・・・
> Doxygen Release 1.6.1  (release date 25-08-2009)
> Doxygen Release 1.6.0  (release date 20-08-2009)
見たいに短い間隔のリリースもあるっちゃあるんだが、
すでにDoxygen Release 1.6.2リリースから1ヶ月たっても
新しい版がでていないしなぁ。
>>388氏の解決策に乗っかろうかなぁ。。。
395394:2010/01/30(土) 23:27:05
<報告>
英数字どころか、小文字じゃないとダメみたいです。
AbCdE
とかはだめで、
abcde
ならOKのようです。
396デフォルトの名無しさん:2010/02/06(土) 23:10:09
死亡回避age
397デフォルトの名無しさん:2010/02/09(火) 21:40:07
Doxygen Release 1.6.2 + WinXPです。

ttp://codepad.org/UOnh6aUc
これを出力させると
ttp://uploader.rgr.jp/src/up1961.jpg
このように、inlineでもないのに勝手にinlineになります。
なお、
ttp://codepad.org/iT6VHAtw
のように、テンプレートでなければ勝手にinlineにはならないようです。
ttp://uploader.rgr.jp/src/up1962.jpg

同じ症状の方いらっしゃいますか?
398397:2010/02/09(火) 21:40:49
あと、もし古いバージョンで試してくださる方がいらっしゃったら
是非結果を教えてください。
よろしくお願い申し上げます。
399397:2010/02/11(木) 20:12:03
Graphviz - Graph Visualization Software
が最新版でました!version 2.26.3 になりました。

・・・そしてインストールしたらエラーになったので、
同じ症状で悩んでいる方がもしいらしたら参考にしてください。
解決策のリンク
ttp://old.nabble.com/Dot-problems-td15185555.html


************************************************************************
Oren Almog wrote:
I am using the windows version. Doxygen seems to work fine but I repeatedly
get errors when it calls dot to generate call graphs (or any other graphs).

c0f5d09662a9af0a3f709cb57d6841_cgraph.dot" -Tpng -o
"ex__cmds_8c_abc0f5d09662a9af0a3f709cb57d6841_cgraph.png"'
Problems running dot: exit code=-1, command='dot',

Dot is in my PATH. To be sure I tried to create the graph manually my going
to the directory and calling dot with the same parameters, I get a message
about a missing font and that file will look ugly but the png is generated
with no further input required from me.

Any ideas?
************************************************************************
biljana wrote:
You have to install Graphviz and set the DOT_PATH to the Graphviz/bin folder. Also you should set HAVE_DOT to YES.

400デフォルトの名無しさん:2010/02/21(日) 22:45:41
Doxygen 1.6.3 age
401デフォルトの名無しさん:2010/02/21(日) 23:26:54
>>400
ktkr
使います
402397:2010/02/26(金) 06:35:09
>>397のバグですが、
Doxygen 1.6.3 で直っていないようです。

バグ報告しないと直らないんですかねぇ。
どこからバグ報告すればいいやら。
403デフォルトの名無しさん:2010/02/27(土) 21:06:19
Doxygen 1.6.3 で
@pageで生成したページのタイトルが付かないバグ
は、解決しているようですね。
404デフォルトの名無しさん:2010/03/08(月) 15:44:01
WinXP version1.6.3で、S-JISのファイルを変換したいのですが、設定ファイルを
INPUT_ENCODING = CP932
と設定した場合は、
Error: failed to translate characters from CP932 to UTF-8: check INPUT_ENCODING
とエラーがでます。

INPUT_ENCODING = SHIFT_JIS
とした場合は
Error: failed to translate characters from SHIFT_JIS to UTF-8: check INPUT_ENCODING
とエラーがでます。

DOXYFILE_ENCODING = SHIFT_JIS
として、
PROJECT_NAMEに日本語を設定したら反映されます。

何か他に設定する必要があるのでしょうか?
405デフォルトの名無しさん:2010/03/09(火) 00:33:11
>>404
INPUT_ENCODING はソースファイルのエンコーディングの設定で、
DOXYFILE_ENCODING は設定ファイル自身のエンコーディングの設定です。

> WinXP version1.6.3で、S-JISのファイルを変換したいのですが、
のS-JISのファイルというのは設定ファイルじゃなくソースファイルのことですか?
だったら、 INPUT_ENCODING = CP932 で合ってるはずなんですが。

S-JISのつもりで実はUnicodeだったなんてことはないですか?

> DOXYFILE_ENCODING = SHIFT_JIS
> として、
> PROJECT_NAMEに日本語を設定したら反映されます。

設定ファイルはDoxywizardを使わないで、テキストエディタで書き換えてるんですか?
Doxywizardだと DOXYFILE_ENCODING は UTF-8 にしないと正しく動作しないはずなので。
406デフォルトの名無しさん:2010/03/10(水) 16:41:23
>>405

ソースファイルを確認したところ、
新規に追加したものはSHIFT_JISだったのですが、
もともとあったソースは中国語のソースで、文字コードが"繁体字中国語"というもののようで、
このファイルを解析する時に、SHIFT_JISでないということで、エラーになるようです。

ありがとうございました。
407デフォルトの名無しさん:2010/03/10(水) 20:58:58
中国語か。
最近ちらほら見かける。
408デフォルトの名無しさん:2010/03/18(木) 09:48:49
こんなの作ってみた。良かったら使ってみて。

ttp://sourceforge.jp/projects/sfnet_doxygemplate/
  ttp://sourceforge.net/projects/doxygemplate/

今のところWindows専用だけど,Qtで作ってるのでLinuxでもビルドできるはず。
俺はWindowsオンリーなので,誰か手伝ってくれると助かるんだけど...
409デフォルトの名無しさん:2010/03/18(木) 10:17:11
>>408
ほー。そういう着眼点か。

そのdoxygemplateなら、
WindowsビルドしかなくてもLinuxでもWineを使えば普通に動きそうだ。

410デフォルトの名無しさん:2010/03/19(金) 02:55:22
どげなもんなのか、簡単に解説頼む。
411408:2010/03/19(金) 07:27:50
>>409
レスサンクス。

> WindowsビルドしかなくてもLinuxでもWineを使えば普通に動きそうだ。

Linuxのことは知らないのでググってみtけど面白そう。
タスクトレイもちゃんと使えるの?


>>410
使い方を簡単に言うと、

・起動するとタスクトレイに常駐する。

・エディタで編集中のC/C++のソースの関数宣言(.hでの定義部でも.cや.cppの実装部
 でもOK)をクリップボードにコピーする。宣言の頭から、引数リストの閉じカッコまでが
 入ってればOK。それ以降は入っていても構わないが無視される。

・タスクトレイのアイコンを右クリックして「テンプレート編集」を選ぶと、編集画面が
 現れる。この段階で既に関数の引数やリターン値を解析して、retval コマンド
 とリターン値の型や、param コマンドと引数名が作成されている。
 この画面で param コマンドの[in]⇔[out]⇔[in,out]を切り替えたり、
 行の削除/追加や、details など幾つかのコマンドの追加が出来る。

・編集が終わったら「クリップボード保存」を押すと編集した内容が
 クリップボードにコピーされ、編集画面が閉じる。

・テキストエディタで関数宣言の上にクリップボードから作成されたテンプレートを
 ペーストする。

こんな感じ。
412デフォルトの名無しさん:2010/03/19(金) 08:31:31
>>411
なるほど、面白そうじゃん。エディタのマクロと巧く連携できればそこそこシームレスに編集できそうだ。
413409:2010/03/19(金) 12:18:28
>>411
> タスクトレイもちゃんと使えるの?
俺もそんなにデスクトップLinuxを使い込んでいる訳じゃ無いので、
ごめん、わかんないわ。

タスクトレイに相当するとこも使えそうな気がするけど、
もしダメでもまあLinuxユーザーならソースだけおいとけば
自分でビルドする人が多いだろうしいいんでね?
414デフォルトの名無しさん:2010/03/25(木) 20:06:58
C言語、UTF-8、日本語コメントあり

doxygen 1.6.3
W32TeX (texinst2010.zip)
でpdf出力のためにLaTeXで出力させてみたんですが

epsの出力で

Generating caller graph for function XXXXXXXX
epstopdf ($Id: epstopdf.pl 17507 2010-03-19 22:52:56Z karl $) 2.15
!!! Error: Writing to gs failed, signal 127

ってなります回避する方法はあるのでしょうか?
415397:2010/04/13(火) 07:00:23
>>397のバグですが、
Doxygen 1.6.3 で直っていないようでしたので報告しました。

Bug 612858 ? Doxygen takes a NON-INLINE template function for INLINE one mistakenly.
ttps://bugzilla.gnome.org/show_bug.cgi

直してくれるそうです。
やったー!!
416デフォルトの名無しさん:2010/04/26(月) 22:53:59
死亡回避sage
417デフォルトの名無しさん:2010/06/16(水) 03:07:30
Doxygen 1.7.0 age
418デフォルトの名無しさん:2010/06/26(土) 01:54:40
Doxygen 1.7.1 age
419デフォルトの名無しさん:2010/06/26(土) 08:13:54
>>408
面白いですね。
個人的にはタスクトレイに常駐するより、
Alt + tab で切り替えられる方が使いやすい気がしますが、
どうなんでしょう?
Linuxでどうするの?って問題も無くなると思いますし。

ちなみにemacsユーザーの人は
doxymacs使ってるよね?
420デフォルトの名無しさん:2010/06/26(土) 10:23:10
>>418
昨日1.7.0インストールしたばかり(ToT)
421408:2010/06/27(日) 20:21:31
>>419
レスありがとうございます。

> 個人的にはタスクトレイに常駐するより、
> Alt + tab で切り替えられる方が使いやすい気がしますが、
> どうなんでしょう?

なるほど,それはいいかも知れません。
Linuxは使わないので知らないんですが,Linuxでもアプリケーションの切り替え
はAlt + tabなんですか? 別にそうでなくても問題はないんですが。

実は最初はWIN32 APIを使って指定キー(Ctrl または Shift または Alt)の指定
回数連打でアクティブになるようにしてたんですが,これだとWindows専用に
なってしまうのでやめたんです。でもやはりキーボードで操作できた方が
いいですよね。

他の操作もキーボードでできるようにするなど,まだ改良点がありますし,
Alt + tabでアクティブになったときにクリップボードから関数の宣言部分を
取り出して処理するとなると,全体の構成も考え直さなければならないので,
少し時間が必要だと思いますが,やってみたいと思います。

ありがとうございました。
422デフォルトの名無しさん:2010/06/28(月) 10:48:57
>>421
「こんなの」がどんなのか判らないから試してみる気にもなれないのだが。
せめて、どんなのか書いてくれ。
423デフォルトの名無しさん:2010/06/28(月) 23:20:53
>>422
>>411に書いたんですが。あと>>408のリンク先のスクリーンショットを見て
いただくと雰囲気がわかるかも知れません。
424デフォルトの名無しさん:2010/07/01(木) 09:36:08
だからさぁ、なんでだらだら説明することしかできないの?
425デフォルトの名無しさん:2010/07/01(木) 21:22:54
あんたこそダラダラ聞いてないで、とっとと使ってみりゃいーじゃん。
売り物じゃないんだから、>>423だってそうまで言われて使って欲しいとは思わんだろ。
426デフォルトの名無しさん:2010/07/01(木) 23:42:21
>>424
機能の全容をまあまあ簡潔に説明されてるのに、それすら読まずにわざわざ文句書くのは引くわ。
427デフォルトの名無しさん:2010/07/03(土) 22:55:03
頭おかしいやつに関わるなよ。
428デフォルトの名無しさん:2010/07/06(火) 09:51:30
一番エラーとかなく安定してるのって1.5.5?
429デフォルトの名無しさん:2010/07/08(木) 11:44:52
>>428
もっと新しいのでもいいんでない? 私のところでは1.5.8で止まっているけど。
430デフォルトの名無しさん:2010/07/12(月) 12:00:37
俺は毎回新しいのにしてるよ。
これから先 更新されていくにあたり、
あんまり最新から離れていると
一気に対応しなきゃならなくなっちゃってめんどくさいから。
431デフォルトの名無しさん:2010/07/13(火) 12:16:09
genのHPでバージョン使用アンケートとか実施するべきだよな
バージョンあげても劣化することが多いなら、良いベースから作った方がいい
イタチごっこになりかねん
432デフォルトの名無しさん:2010/07/25(日) 20:04:11
いつの間にかスタイルシートが新しくなってるじゃないか
433デフォルトの名無しさん:2010/07/29(木) 01:31:04
pythonのソースってFilesに表れる? RHEL5に乗ってる
1.4.7を使ってるんだけど現れない。 クラスは現れるんだけど。

最新を野良ビルドしようと思ったけど依存関係は深いなあ。
434デフォルトの名無しさん:2010/07/30(金) 00:32:06
>>433
公式の使用例だと、pythonの場合は@fileじゃなくて@package使ってるみたいだけど。
435デフォルトの名無しさん:2010/07/30(金) 04:15:28
>>434
ヒントサンクス。 なるほど、そうするとNamespaceの方に現れますね。 
defgroupとかは全然認識してくれないのにそれだけは効きます。

まあ、それでお茶を濁しますか。 
436デフォルトの名無しさん:2010/08/18(水) 00:30:27
既存のソースをdoxy化しようとしてるんだけど、全てのヘッダーに長いライセンス事項が
書かれてるので、@fileなんかをそのヘッダ上に追加するとファイルの説明にそれが全て
追加されるのが鬱陶しい。 これを隠す方法は何があるでしょう? とりあえず、

/**
@file hoge.c

doxygen 用のコメント
*/

/*
既存のヘッダーはこっちに隔離
*/

ってしてるんですけど、もっといい方法があるなら知りたいです。
437デフォルトの名無しさん:2010/08/18(水) 00:33:49
>>436
そのやり方でいいんじゃないか?
438435:2010/08/19(木) 22:05:53
まっ、いいか。

しかしdoxygenいいねえ。 今のプロジェクトでドキュメントの無い、コメントの殆どない
ライブラリを使わなくてはならないのだが、ソースを読みながら解析して理解した事はどんどん
コメントに書き加えていき、doxygenを通すと立派なドキュメントが出来上がっていく。 

ライブラリ内の論理構造からいくつかのグループに分け、中心となるファイルのコメントの中で
@defgroupし、関連するファイルは@ingroupでそのグループにまとめる。 @defgroupした
コメントの中ではそのグループの中での主要なコンポーネントを解説。 解説の中で引用する
ファイル名とかクラス名(HogeClass::)、メンバー名等(HogeClass::hogeMemember)の参照は
全て自動的にリンクになるからそのままソースのナビゲーションが出来る。 

最後に@mainpageを作ってこれらのグループ間の関連をメモし、@refでそれぞれのグループに
リンクを張って出来上がり。

ソースを読んで自分なりにメモを作ったり、wikiにまとめたりとかは過去にしたけど、これは
ソースに完全に統合されているので資産として生きながらえると期待する。 


439デフォルトの名無しさん:2010/08/21(土) 21:07:53
どっかにDoxygenで生成できる旨をコメントしておくことをお勧め。
でないと、Doxygenで生成されたhtmlを編集しようとする馬鹿が出てきかねない。
440デフォルトの名無しさん:2010/08/23(月) 11:44:11
generated by doxygenってロゴがあるじゃないかー!
441デフォルトの名無しさん:2010/09/10(金) 11:55:39
graphiz 2.26.3使ってグラフ出力してるんだけど、画像にパスが格納されちゃうんだ
誰かクラス名もしくはファイル名だけ出力出来る方法知らない?

doxyのバージョンによるのかな
442デフォルトの名無しさん:2010/09/26(日) 23:29:16
#ifdefで囲った部分が無視されるんですが、こういう場合はどうしたらいいんでしょう?

#ifdef HOGE_VER
//! 特定の場合専用の関数
void Hoge();
#endif
443デフォルトの名無しさん:2010/09/27(月) 00:57:34
DoxyfileでDEFINEできるから、そこでHOGE_VERをDEFINEすれば宜しいかと。
444442:2010/09/27(月) 03:24:37
ありがとうございます。PREDEFINEてところに書いたらできました。
445デフォルトの名無しさん:2010/10/09(土) 22:35:39
PREDEFINED = DOXYGEN_SHOULD_SKIP_THIS
とすれば

#ifndef DOXYGEN_SHOULD_SKIP_THIS

Doxygenに無視させたいコード

#endif /* DOXYGEN_SHOULD_SKIP_THIS */

こんなふうに使えます。
446デフォルトの名無しさん:2010/10/12(火) 03:11:52
1.7.2 キタ
447デフォルトの名無しさん:2010/10/30(土) 16:40:01
Graphvizの話ってここでしてもいいすかね。
専用スレが見当たらないんだが
448デフォルトの名無しさん:2010/10/30(土) 20:12:25
Doxygenで使う限りにおいてはOKじゃね?
449デフォルトの名無しさん:2010/11/01(月) 12:16:48
>>447
doxygenに絡まないならこの辺で。
スレ立てるまでもない質問はここで 108匹目
http://hibari.2ch.net/test/read.cgi/tech/1287477677/

私も興味あるから是非。
450デフォルトの名無しさん:2010/11/01(月) 14:11:14
まったく絡まないので、あとでスレ立てするわ
昔はGraphvixのスレあったみたいだし、続きってことにする
451デフォルトの名無しさん:2010/11/04(木) 00:23:09
Graphvixについて答えられる有識者はいるんだろうか。
452デフォルトの名無しさん:2010/11/04(木) 10:19:10
うむ。寡聞にしてGraphvixなるものは与り知らないな。
453デフォルトの名無しさん:2010/11/04(木) 10:54:48
vixじゃなくてvizだよ!わざとだよ!ついだよ!
454デフォルトの名無しさん:2010/11/04(木) 11:09:33
Graphvizって言えば、同じrankにあるnodeの位置関係のヒントって与えられないかな。
doxygenからの出力でも、関数ツリーの上下がある程度同じになってくれると助かるんだけど。
例えば、
main->a->b
    ->c-^

    ->c-v
main->a->b
になったりしないように。
455デフォルトの名無しさん:2010/11/05(金) 19:08:08
>>454
Graphviz(というかdotエンジン)単体なら、group属性を指定しておけばある程度は制御できる。
doxygenからは(事実上)無理。関数ツリーの上下が変わるのって下請け関数の影響が大きいから
レベルを指定して下請けまで展開しないようにするってのも手。まぁ、どうしてもってことなら自作するしかw
456デフォルトの名無しさん:2010/11/19(金) 12:12:25
派生クラスで仮想関数を再定義した場合、派生クラスのメンバー一覧にこの関数が表示されますが、
これを非表示にするにはどうすればいいでしょうか?
数が多く基底クラスで表示してくれれば充分です。
457デフォルトの名無しさん:2010/11/19(金) 12:26:29
・仮想関数がprivateならDoxyfileでprivateなメンバ関数は出力しない設定にする
・#ifndefで括って、Doxyfileでそのマクロを定義する
・他の出力したい関数にDoxygenコメントが必ずあるなら、Doxygenコメントのない関数は出力しない設定にする
458デフォルトの名無しさん:2010/11/19(金) 13:44:48
3番目の方法で出来ました。ありがとうございました。
HIDE_UNDOC_MEMBERS = YES
ドキュメントづけは全部やるのでこれで大丈夫です。
459デフォルトの名無しさん:2010/11/26(金) 20:32:20
doxygenで内部用と外部用のドキュメントの2種類を作りたいのですがどうのうな形にするのが
いいですか。
とりあえず全部ドキュメントを書いておいて外部用の場合は
非公式なクラス、関数を隠したいのですが、どうすればいいのやら。
460デフォルトの名無しさん:2010/11/26(金) 20:40:49
>>459
>>340の応用で
PREDEFINED = DOXYGEN_SHOULD_SKIP_THIS
とかにすれば。
これを内部用と外部用のマクロにすればおk!
461デフォルトの名無しさん:2010/11/27(土) 12:15:32
いや、まず @internal の使用を検討する方が先だろう。
462459:2010/11/27(土) 12:19:20
>>461
@internal でいけました。
探していたのはこれです。有難うございました。
463デフォルトの名無しさん:2010/12/16(木) 18:07:20
hosh
464デフォルトの名無しさん:2011/01/04(火) 13:01:20
明けましておめでとうございます。
hosho
465デフォルトの名無しさん:2011/01/05(水) 08:16:00
1.7.3 が出ました
466デフォルトの名無しさん:2011/01/08(土) 11:21:38
バグが2つ取れて新たに1つ入るんだよなこれって。
467デフォルトの名無しさん:2011/01/15(土) 20:33:03
C++で多重継承していた場合、一番最後に指定したクラスのオーバーライド関数しか「〜を実装しています。」が出ないな。
例えば、

class BasicActor : public Actor, public IEventListener
{

だとActorの方の仮想関数をオーバーライドしても「〜を実装しています」が表示されない。
ActorとIEventListenerの順番を入れ替えると逆の方のクラスの関数の「〜を実装しています」が表示されない。
早く治るといいなあ。
468デフォルトの名無しさん:2011/01/20(木) 21:42:56
doxygen凄く便利そうだな!だけどRTF出力がうまくいかね…。
一応>>138のバイナリとdoxywizard(1.7.3)で試してるんだが、

OUTPUT_LANGUAGE=Japanese
INPUT_ENCODING=CP932

以外に何か設定って必要なのか?
もし良かったらだれかDoxyfileをうpしてくれると凄く助かるわ…。
469デフォルトの名無しさん:2011/01/21(金) 00:23:16
>>468
OUTPUT_LANGUAGE=Japanese-en
470デフォルトの名無しさん:2011/01/21(金) 21:50:09
>>469
レスサンクス!
拾ってきたサンプルソースがCP932じゃなかったというどうしようもない原因でしたorz
スレ汚しスマソ
471デフォルトの名無しさん:2011/04/05(火) 10:52:41.34
1.7.4 が出たようですが....
試してみた人います?
472デフォルトの名無しさん:2011/05/14(土) 11:06:54.20
1.7.4の日本語のrtf出力やっぱりおかしい。
以下、対処メモ。
>102,>134を参考にソース修正・コンパイルして日本語rtf出力できたの確認。
doxygen-1.7.4/src/rtfgen.cppのencodeForOutputを修正
uint i;
uint mbFlag=0; // ←追加
for (i=0;i<enc.size();i++)
{
uchar c = (uchar)enc.at(i);
if (c>=0x80 || mbFlag==1) // ←修正
{
char esc[10];
sprintf(esc,"\\'%X",c);
mbFlag=1-mbFlag; // ←追加
t << esc;
}
else
{
t << (char)c;
}
}
473デフォルトの名無しさん:2011/06/09(木) 18:58:40.57
@だとドキュメント付けできて、\だとできないのは何故ですか?
474デフォルトの名無しさん:2011/06/09(木) 23:04:27.97
>>473
言ってることがよく判らん。普通に@paramでも\paramでもできると思うが。
475デフォルトの名無しさん:2011/06/10(金) 09:31:34.72
>>474
ところが、\paramだとだめで、@paramだとできるんすよ。
何か切り替えるようなオプションがあるのだろうか?
476 忍法帖【Lv=3,xxxP】 :2011/06/10(金) 14:41:51.21
そのダメなファイルと環境とリビジョンについて詳しく。
477デフォルトの名無しさん:2011/06/16(木) 12:06:46.19
\\にすればおk
478 忍法帖【Lv=6,xxxP】 :2011/06/16(木) 21:55:08.60
んな馬鹿な
479デフォルトの名無しさん:2011/06/17(金) 15:09:51.06
馬鹿っていうほうが馬鹿
480デフォルトの名無しさん:2011/08/26(金) 14:21:37.30
復帰
481デフォルトの名無しさん:2011/09/15(木) 21:14:39.34
#define HOGE 123
msg.h の 20 行で定義されています
みたいな行番号表示をオフにするにはどうしたらいいの?
482デフォルトの名無しさん:2011/10/27(木) 08:42:23.16
1.7.5.1 は日本語 rtf 出力の文字化けが直ったみたいだ。
483デフォルトの名無しさん:2012/02/16(木) 01:44:46.69
C++で、ソースを弄りたくない他所のライブラリの基底クラスのpublicなメソッドのリファレンスを
自作の派生クラス側のソースで書く事ってできないもんでしょうか。
484デフォルトの名無しさん:2012/02/17(金) 00:52:56.77
>>483
宣言や定義の直前にしかその関数etcの説明を書けないと思っているなら一度doxygenの使い方をちゃんと勉強すると良い。
doxygenのタグのリファレンスを眺めるだけでも全然違うと思う。
485483:2012/02/21(火) 23:05:35.96
@fn を書いているのに出力されないと思ったら、うっかり他のネームスペース内に書いていた為でした。
お騒がせしました。
486デフォルトの名無しさん:2012/02/26(日) 01:02:49.50
Doxygen 1.8.0 age
487デフォルトの名無しさん:2012/02/26(日) 01:16:48.60
x64バイナリも出たんだな
488デフォルトの名無しさん:2012/03/01(木) 14:57:23.15
こういう、箇条書きをインデントさせると
  /*!
      - 列挙したい場合はこのように先頭に -をつける
        - 更にインデントをつけたいときはこうする
          - 更にインデントをつけたいときはこうする
  */

 ・列挙したい場合はこのように先頭に -をつける
   ・更にインデントをつけたいときはこうする
     ・更にインデントをつけたいときはこうする

こうやってくれるんだけど


これを、このように、
ソースにそった形でインデントさせたいんだけど

  //! - 列挙したい場合はこのように先頭に -をつける
  if (a == 1) {
    //!   - 更にインデントをつけたいときはこうする
  }

これを普通にやると
 ・列挙したい場合はこのように先頭に -をつける
 ・更にインデントをつけたいときはこうする
こうなっちゃうんだよね

「単独行で、強制的に2つ以上のインデント」させる、いい方法ないかねぇ

というか、そもそも
doxygenは、こういうコメントを書くべきじゃないのかな?
489デフォルトの名無しさん:2012/03/05(月) 04:23:13.19
やはりテンプレート関連でおかしくなるなあ
490デフォルトの名無しさん:2012/05/21(月) 11:48:57.46
Doxygen 1.8.1 age
491デフォルトの名無しさん:2012/06/13(水) 13:00:33.35
http://www.doxygen.jp/manual.html にあるマニュアル、
一括ダウンロードできるようになってないのかな。
Webに繋がっていないときにこそ見たいときが多くて、歯噛みすることが多いんだけど。
# 取り敢えず、コマンドのページだけはダウンロードしておいたけど実例見られない……
492デフォルトの名無しさん:2012/06/14(木) 15:19:16.46
「階層まるごとダウンロードツール」使えばええんちゃうのん
493デフォルトの名無しさん:2012/07/17(火) 13:19:18.40
C#で表示されるクラス名が全部
<パッケージ名>.<クラス名>
になってすごく見づらいんですが、これをクラス名だけにする方法を教えてください
何というオプションなのかそもそも名前がわかりません
494デフォルトの名無しさん:2012/07/17(火) 13:26:33.37
HIDE_SCOPE_NAMESでいけた。お騒がせしました
495デフォルトの名無しさん:2012/07/24(火) 20:50:05.56
クラスの階層じゃなくて、依存関係をグラヒカルに見たいんだけど
なにを設定すればいいんだっけか
496デフォルトの名無しさん:2012/07/25(水) 11:08:33.44
HAVE_DOT
後は適当に。
497デフォルトの名無しさん:2012/10/14(日) 16:05:32.12
気になるけどまだ使っていない。
便利なんだろうか?
498デフォルトの名無しさん:2012/10/14(日) 18:43:04.08
使えば判る。是非使え。
499デフォルトの名無しさん:2012/11/17(土) 02:10:59.92
Doxygen 1.8.2 age
500デフォルトの名無しさん:2012/12/01(土) 05:59:46.03
doxygenで制作されたライブラリのレファレンスがあるんだけど、オフラインで見たいからダウンロードしたいんだが、なにか方法はないだろうか。
なんかサーバー側の調子が悪いのか、見たい時に中々見れない時とかあって困ってるんだ。

なんかメインページがphpだからなのか、普通のダウンロードツールじゃうまくいかないんだ。
501デフォルトの名無しさん:2012/12/01(土) 06:02:58.31
じっさいに見てみないことには何とも言えん
URIはよ
502デフォルトの名無しさん:2012/12/01(土) 07:16:56.55
doxygenで出力されるのは通常htmlで、phpじゃないよ。
そうでなくても、このスレで聞くのはスレ…いや、鼬害。
503デフォルトの名無しさん:2012/12/01(土) 19:32:43.73
\relatesは関数にしか機能しないということですが、同じようにC++のクラスを他のクラスに関連付ける手段はないでしょうか?

//何かのTraitsクラステンプレート
template < typename T > xxxx_traits;

/*! クラスA
*/
class A { ... };

/*! xxxx_traitsのクラスAに対する特殊化バージョン
 \relates A ← 例えばこんな風に
*/
template <>
struct xxxx_traits< A > {.... };

クラスAのドキュメントからxxxx_traits< A >へのリンクを張りたいのですが。
504503:2012/12/01(土) 19:51:28.94
書き忘れていました。
今は、クラスAのドキュメントから\saでリンクを張っています。
しかし、Related Functionsと同列にできないものか、と思ったのです。
後出しですいません。
505デフォルトの名無しさん:2012/12/02(日) 00:27:49.22
プログラム関係で詳しい奴っている?
506500:2012/12/05(水) 18:40:16.24
>>501 >>502
doxygenで構築されるのはhtmlなのか。
ソースコード向けホームページ作成ツールみたな認識でいいんかな。
ってことはdoxygenを仮にインストールしたとして、WEB上にあるdoxygenで出力したページはhtmlとかだからgitみたいにダウンロードするとかそういうのも無いんか

ちなみにURLはこれ
ttp://www.arongranberg.com/astar/docs/
507デフォルトの名無しさん:2012/12/07(金) 01:22:50.83
>>506
使った事はないけどpdfへの出力もサポートしてるよ。

Output Formats
http://www.stack.nl/~dimitri/doxygen/output.html
508デフォルトの名無しさん:2012/12/07(金) 11:28:30.72
TeXからps経由でpdfにするのは日本語の扱いで結局満足いく出力になったことがないんだよなぁ。
rtfからdoc経由でpdfにするのはMS-Office2010があれば日本語も大丈夫なようだけど。
509デフォルトの名無しさん:2012/12/11(火) 13:15:43.39
>>506
wget --mirrorとか。
510デフォルトの名無しさん:2012/12/27(木) 01:20:09.22
Doxygen 1.8.3 age
511デフォルトの名無しさん:2012/12/27(木) 13:15:24.02
New features 見てみた。External Indexing and Searching 面白そうだな。
ttp://www.stack.nl/~dimitri/doxygen/extsearch.html
512デフォルトの名無しさん:2013/01/17(木) 19:51:25.05
RTFで出力したときに
1.先頭ページが「TITLE AUTHOR Version 1.0.0 CREATEDATE」となり内容が出力されない。
2.3ページ目が「目次 Tavle of contents」となり出力されない
3.最終ページが「索引 INDEX」となり出力されない
4.デストラクタ「~」で始まる名称が文字化けする
version は1.8.2 です。
DOXYFILE_ENCODING = UTF-8
INPUT_ENCODING = SJIS
としています。個別でも構いません解決方法ご存知の方はおられませんか。
513デフォルトの名無しさん:2013/01/18(金) 09:11:06.86
>>512
INPUT_ENCODING=CP932
の方がいいと思います。
後は、MS WORD で読み込んで全文選択した後フィールド更新
514デフォルトの名無しさん:2013/01/18(金) 09:23:11.01
>>513
早速やってみたら全てきれいに解決しました。
ありがとうございました。
515デフォルトの名無しさん:2013/01/18(金) 18:25:25.37
>2.3ページ目が「目次 Tavle of contents」となり出力されない
なんだこれ。
516デフォルトの名無しさん:2013/01/18(金) 18:28:31.06
>>515
「目次 Table of contents」のパンチミスでした。m(__)m
517デフォルトの名無しさん:2013/01/22(火) 23:35:14.46
Doxygen 1.8.3.1 age
518デフォルトの名無しさん:2013/04/05(金) 22:53:14.91
Doxygen 1.8.3.1 使ってます
rtfの出力なのですが

VisualStudio 2010でC#で使おうと思ってます

DOXYFILE_ENCODING = CP932
INPUT_ENCODING = UTF-8

として、出力したところ
refman.rtf
は何となくそれっぽい出力をされているのですが
おまけで作られる大量のrtfファイルが、UTF-8のままなのか文字化けしちゃいます


refman.rtfファイルに対して、ワード2007で
読み込んで全文選択した後フィールド更新
としても、おまけファイルが取り込まれた様子もないです(おまけファイルの図が取り込まれていない)

それと、目次が「TOCが間違っています」・・・
というエラーになってしまうページがあったりします

doxygenはあまりワード出力は向いてないのでしょうか
htmlは結構イメージしたものに近い出力だったのですが
519デフォルトの名無しさん:2013/04/10(水) 15:03:15.14
>>518
ソースもcp932にしないと難しいかもね。
それと、word2010にしたら改善するかもしれない。
いずれにしても、日本語は相性悪いよ。
そうそう、JapaneseでダメならJapanese-enも試してみる価値あり。
520デフォルトの名無しさん:2013/05/06(月) 14:48:10.14
1.8.3.1で、C言語でグローバル変数を使う時に、
(foo.h)
extern int a;
(foo.c)
int a;
って書くと出力にaが2個現れるのですが、仕様でしょうか
521デフォルトの名無しさん:2013/05/06(月) 14:53:50.36
@addtogroupでcとhを同じグループに入れた時だけ>>520みたいな状態なので、とりあえずexternの部分だけグループから外します
522デフォルトの名無しさん:2013/05/06(月) 15:13:09.82
externはグループから外さなきゃいけないか
まあそりゃそうだな
失礼しました
523デフォルトの名無しさん:2013/05/10(金) 23:59:33.52
doxygenを意識していないソースコードに
doxygen用のコメントのテンプレートみたいなのを書き込む機能ってありませんか?
例えば

class Hoge
{
...
};
などとあったら
/**
* @brief brief of Hoge
*
* detail of Hoge
*/
class Hoge
{
...
}:
のようなコメントを挿入するような
524デフォルトの名無しさん:2013/05/12(日) 07:16:01.98
>>523
つeclipse
525デフォルトの名無しさん:2013/05/13(月) 17:14:58.88
>>523
んなもん、Doxygenにあるわけないだろ。
LL言語で作るかエディタのマクロで作るかすればいいだろうが、それはスレ違い。
あぁ、JavaDocスタイルを有効にしておけば、もそっと簡単になるな。
526デフォルトの名無しさん:2013/05/13(月) 20:40:48.28
でもそれこそdoygenにパーサがあるわけだから、doxygen内蔵でそういう機能があったらいいなとお思うのは
自然で低コストだべ?
527デフォルトの名無しさん:2013/05/14(火) 01:41:00.13
VisualStudio で C++ なら DoxyComment だろうけど。
528デフォルトの名無しさん:2013/05/14(火) 05:45:06.00
ありがたい、求めていたものはそれです
529デフォルトの名無しさん:2013/05/14(火) 12:51:38.41
>>527
これ便利そうやな
コマンドライン版ある?
530デフォルトの名無しさん:2013/05/14(火) 20:11:22.93
>Express Editionでは使えません
チクショー!
531デフォルトの名無しさん:2013/10/28(月) 16:59:29.04
細かいのはヘッダファイルに書く派? ソース本体に書く派?
532デフォルトの名無しさん:2013/10/28(月) 18:54:07.23
本体と別々にdoxygenコメントを書くことはねーよ。doxygenのいいところが全く無駄になるだろ。
ヘッダファイルに書くのは前方宣言とマクロ定義くらいだから当然ソース本体にしかdoxygenコメントなんざ書かない。
533デフォルトの名無しさん:2013/10/31(木) 15:00:35.36
@parのなかでPREタグ使いたいんだけどうまくいかない
AAとか書くときってみんなどうしてるの?
534デフォルトの名無しさん:2013/10/31(木) 15:27:12.80
AAとか書かない
535デフォルトの名無しさん:2013/10/31(木) 20:46:05.36
>>534
きみの思いとか気持ちを聞いているわけじゃあないんだ。 わかるね?
536デフォルトの名無しさん:2013/11/01(金) 16:50:18.73
>>535
なんのAA書きたいんだよ
537デフォルトの名無しさん:2013/11/01(金) 17:41:02.50
>>536
┌─┬─┬─┬─┐
│あ│い│ │お│
└─┴─┴─┴─┘
こういうのとか
538デフォルトの名無しさん:2013/11/01(金) 17:54:00.33
>>537
table使えば?
539デフォルトの名無しさん:2013/11/01(金) 22:42:39.54
@htmlonlyじゃダメなのか?
540デフォルトの名無しさん:2013/11/02(土) 17:17:04.47
>>531
俺はヘッダに書くね
実装する時はヘッダから見るし
541デフォルトの名無しさん:2013/11/04(月) 13:47:21.10
>>532>>540、よくどちらも聞くしどちらも一理あるんだけど
どっちがより一般的なのかな。 長いものに巻かれたい。
542デフォルトの名無しさん:2013/12/17(火) 11:52:10.96
調べても分からなかったので、質問です。
同じ引き数の関数をまとめたいですが、どうすればいいでしょうか?
以下のようにしたいです。(doxygen 1.8.5使用)

関数
-----
bool add_apple(int* out, int in);
bool add_orange(int* out, int in);
bool add_lemon(int* out, int in);
-----
果物を追加する

引き数
 [out] out 出力
 [in] in 入力

戻り値
 成功 true
 失敗 flase
543デフォルトの名無しさん:2013/12/17(火) 15:33:50.57
\refで参照するようにするとか。
544デフォルトの名無しさん:2013/12/17(火) 18:49:21.24
Doxygen使ってるプロジェクトのドキュメントとかを見てみたけど
複数の関数をまとめて表示してるのは全く見つからなかった…

\refはグループ化とかしないと行けないっぽいし若干敷居が高い…
とりあえずバラでドキュメント化しておくよ
どうもでした
545デフォルトの名無しさん:2013/12/18(水) 16:18:20.67
>>542
ところで、それ言語なんなの?
546デフォルトの名無しさん:2013/12/19(木) 00:12:07.15
最近はC言語もマイナーになったのかぁ....
547デフォルトの名無しさん:2013/12/19(木) 10:13:56.97
>>545
C++だけど何か変か?
もちろんサンプル用にその場で書いただけなんだけど
548デフォルトの名無しさん:2013/12/19(木) 12:58:14.64
>>547
少なくとも>>545のコードはへん
549デフォルトの名無しさん:2013/12/19(木) 12:58:46.35
>>542だった
550デフォルトの名無しさん:2013/12/19(木) 13:52:30.20
もうちょっと分かり易く書くと

bool add_apple(Fruits* fruits, int add_num); // 成功 true 失敗 false
bool add_orange(Fruits* fruits, int add_num);
bool add_lemon(Fruits* fruits, int add_num);

C++なのに第一引き数にオブジェクトの指定が必要だけど、
別に変ではないよ
551デフォルトの名無しさん:2013/12/19(木) 14:29:38.26
いや変
552デフォルトの名無しさん:2013/12/19(木) 15:26:51.69
変なのは分かったから、ちゃんと具体的に言えないの?
553デフォルトの名無しさん:2013/12/19(木) 16:21:36.49
君に使う時間ないし
強烈に変だと思ったからそれだけ伝えたかっただけ
554デフォルトの名無しさん:2013/12/19(木) 16:29:15.77
あ、でもFruitsの定義とbool add_apple()の定義を書くというなら、そのコードのどこがおかしいかは指摘できる
555デフォルトの名無しさん:2013/12/19(木) 16:35:13.03
スレ違い
556デフォルトの名無しさん:2013/12/19(木) 17:05:53.26
逃げたw
557デフォルトの名無しさん:2013/12/19(木) 17:49:31.89
まあC++の天才と謳われた俺に書かせれば
bool add ( string fruits_type, Fruits* fruits, int_add_num )
かな。

かなりスマートな設計になっているのが分かると思う。
558デフォルトの名無しさん:2013/12/19(木) 17:54:43.58
なるほど。
559デフォルトの名無しさん:2013/12/19(木) 18:00:35.80
Fruits fruits;
fruits.add("apple", 10);
とかするのが普通な気もするが。
560デフォルトの名無しさん:2013/12/19(木) 18:44:41.90
bool add_apple(Salud* salud, int add_num); // 成功 true 失敗 false
も定義しておけば、

Salud salud;
Fruits fruits; // Salud と継承関係はない

add_apple(salud, 10);
add_apple(fruits, 10);

と出来るメリットもあるので、一概にどれがいいとは言えない
状況による
561デフォルトの名無しさん:2013/12/19(木) 18:55:55.95
>>546>>547>>550>>552>>557>>559

>失敗 flase
これじゃね?
562デフォルトの名無しさん:2013/12/19(木) 19:10:25.11
まさかそんなあからさまなtypoに対して
「ところで、それ言語なんなの?」なんてドヤ顔でレスするのは想像の範囲外だわ
563デフォルトの名無しさん:2013/12/19(木) 22:42:48.16
>>562
こういうのも「嘘を嘘と」の一環じゃねえかと思うんだが
564デフォルトの名無しさん:2013/12/20(金) 11:37:29.60
>>561
> これじゃね?
違うよ

> 「ところで、それ言語なんなの?」なんてドヤ顔でレスするのは想像の範囲外だわ
一見C++なんだが、俺の知らない言語の可能性もあるので聞いた

>>560
> 状況による
まあ確かにそうなんだが、俺の見立てではどんな状況でも糞

> Salud salud;
> Fruits fruits; // Salud と継承関係はない
>
> add_apple(salud, 10);
> add_apple(fruits, 10);
も糞だ
565デフォルトの名無しさん:2013/12/20(金) 12:59:40.53
設計思想を語りないなら他に行ってくれ。
まぁ、相手にされないからこんなニッチなところで管巻いているんだろうけど。
566デフォルトの名無しさん:2013/12/20(金) 13:28:10.11
>>565
別に語りたくないし

変な物を変だと言う自由もないのかこのスレは
567デフォルトの名無しさん:2013/12/20(金) 13:30:26.58
まあ、どこの誰かもわからん俺みたいな奴に変だの糞だの言われても、
自分に絶対の自信があれば無視しとけばいいだけの話だよ
568デフォルトの名無しさん:2013/12/20(金) 17:58:21.57
まあ、上のコードとか見ると
doxygen 使う以前にもっと読みやすいコードを書く練習しろよとは思う。
doxy られても読む気がしなそうだぜ。
569デフォルトの名無しさん:2013/12/20(金) 19:08:41.10
まぁとりあえず、4回も5回もどうでもいい書き込みしなくても
どう糞なのかを1回書き込んでくれれば、それでいいんだよ
570デフォルトの名無しさん:2013/12/21(土) 01:52:05.13
flase対するツッコミだったほうがまだマシだったよーな・・・
571デフォルトの名無しさん:2013/12/24(火) 21:04:18.14
とりあえずVC++のMFCで書くとしたら、こうするかな。

// Fruit.h
class CFruit : public CObject {
public:
virtual CString GetName() const =0;
};
// Apple.h
#include "Fruit.h"
class CApple : public CFruit {
public:
virtual CString GetName() const { return(_T("Apple")); }
};
// Orange.h
#include "Fruit.h"
class COrange : public CFruit {
public:
virtual CString GetName() const { return(_T("Orange")); }
};
// Lemon.h
#include "Fruit.h"
class CLemon : public CFruit {
public:
virtual CString GetName() const { return(_T("Lemon")); }
};
// FruitBasket.h
#include "Fruit.h"
#include <afxtempl.h>
typedef CTypedPtrArray <CObArray,CFruit *> CFruitPtrArray;
class CFruitBasket : public CFruitPtrArray;
572デフォルトの名無しさん:2013/12/24(火) 21:04:57.14
// 続き

int main()
{
CFruitBasket objBasket;
CFruitPtrArray arr;

objBasket.Add(new CApple);
objBasket.Add(new COrange);
objBasket.Add(new CLemon);
arr.Add(new CApple);
arr.Add(new COrange);
arr.Add(new CLemon);
objBasket.Append(arr);

for(int nIndex=0;nIndex<objBasket.GetSize();nIndex++)
{
cout << "\r\nobjBasket[" << nIndex << "]=";
cout << (LPCTSTR)objBasket.GetAt(nIndex)->GetName();
}
}
573デフォルトの名無しさん:2013/12/25(水) 08:11:12.01
574デフォルトの名無しさん
C++11のfinalキーワードに対応してないからクラス名が変になる
多分overrideにも対応してない