このスレはアイちゃんがうんたらかんたら
標準のスタイルシートも見飽きてきたんだけどなんか格好いいdoxygen用のスタイルシート 配布してるサイトってないの?
,r-、 l l l /:/ ,.ノ-'、,!l ,! ,!:/" ..-''''~`'ーy'⌒`;'"ヾ,.`,r''"`:, '"`'ー-,,r____i';';';';';';';';';'; -j. ゙; --....i',.tノ;';';';':'..:::::..':';';';'(.λ -_.=/t-';';';';'..::::::. .:::::..';';'; ,!-ー'' " _!_..>;';';';';'; ::::::::: ;';';';';r'〈ー-- ,r'",>,i、'r;';';';';';';';';';';';';';' ,!イヽt-'' ,r'" `t-,ッヽ、;';';';'.'.' i" ヽ ヽ, / `''j ーπ-'゙`'ー'r'~ `ー、,__/ ':,
6 :
デフォルトの名無しさん :2008/06/02(月) 15:25:50
このスレは大器晩成型
これだけ使われていてなんで今まで無かったんだろう。
Doxygenってやたらデグレ多くない? やっとバグが直ったと思ったら今まで動いていた部分がおかしくなったり。 いつまでたっても満足のいく出力ができない。
最新版はツリーが文字化けしたりしないか?
11 :
デフォルトの名無しさん :2008/06/05(木) 21:06:31
output japaneseでやってるけど、左のツリーが化けてる 検証はしてない
12 :
デフォルトの名無しさん :2008/06/06(金) 00:15:15
おまいら Javadoc 風と Qt 風のどっちでコメント書いてる?
///
14 :
デフォルトの名無しさん :2008/06/06(金) 13:18:08
ようやくスレが出来たから聞ける 「doxygen」って何て読むの?読んでる?
>>14 doxygenの公式ページのFAQに書いてある
16 :
デフォルトの名無しさん :2008/06/06(金) 13:40:56
うは。こんな過疎スレで即レスサンキュー でも、英語読めませーん --------------------------------- doxygenはどのように名前を持っていましたか? Doxygenは単語ドキュメンテーションとジェネレータで遊ぶのから名前を得ました。 ドキュメンテーション - 医者 - dox 発電機 - 情報を得てください。 当時、私が法とyaccを調べていたので、事態は、「y」で、発音可能につけ加えて、なりました(適切な宣告はDocs-ee情報を得ています、長い「e」があるそう)。(そこでは、多くのものが"yy"から始まります)。 --------------------------------- 翻訳したけど意味わかりませーん 「ドキシゲン」でいいのかな?
ドキシジェンだろ オキシジェンデストロイヤーから連想して
documentation-generator → docs-ee-gen だから カタカナ表記ならドキシジェンかドクシジェンじゃないかな 俺もドキシジェンって言ってる
どくしげんって脳内発音してた
げんしけん
21 :
デフォルトの名無しさん :2008/06/07(土) 00:02:59
やっぱ読み方わからない奴結構いるんだな
d + oxygen に見えるからドキシジェンだろ。
ドキシゲンって読んでたお HTMLでは、文字化けしないのに chm作ると、左側の一覧文字化けする どうしたらいいんだ
>>25 「うまいこと」の意味がわからんな。
何か変わった使い方してるの?
チョンでごめんなさい >うまいこと 俺と比べて、丁寧に利用している意味。 というか、普通に活用してるって意味。
31 :
デフォルトの名無しさん :2008/06/10(火) 22:40:18
まだ30レスにしか達していないのかよ!!
Doxygen が吐き出す XML のフォーマットってどっかに仕様書ある?
34 :
デフォルトの名無しさん :2008/06/14(土) 18:14:58
XMLなら名前空間のところにURLがあるんじゃないの?
名前空間のURLのところにスキーマがあるとは限らない
スキーマって意味まで定義しているんだったっけ。
隙間って何ですか
C 言語のソースから HTML 文書を生成するときにモジュールのページに 1つの関数に対して func() と Struct::func() のような2つの名前が表示 されてしまうのですが func() だけにできないでしょうか?
>>38 OPTIMIZE_OUTPUT_FOR_C はどうしてる?
もちろん YES です。
doxygenのlicenseの以下の文章の意味がよく分かりません。 Documents produced by doxygen are derivative works derived from the input used in their production; they are not affected by this license.
>>41 doxygen で生成した文書は生成に使われた入力の派生物、つまり、この( doxygen の)ライセンスに影響されない。
C++ のクラスの中の using 宣言は文書化されないのでしょうか?
インハウスの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
>>48 vbfilter.pyの出力を晒してみそ
>>48 vbfilter.py は、空行を捨ててしまうんですが、
cTest のドキュメントブロックと fncTest のドキュメントブロックがくっついててもいいんでしたっけ?
私も自信ないので…
自分で使う分は空行を通すようにしたりとか、色々と手を加えて使ってます。
なお、 vbfilter.py の説明に、クラスの説明用のコメントは「'*」じゃなくて「'!」で始めるとあります。
それと、doxygen のマニュアルに書いてますが、説明する対象の直前に置くなら、 @fn コマンドはいりませんよ。
51 :
50 :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
53 :
50 :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の設定でどうにかしたいです。
doxygenのバージョンと動かしているOS、食わせているファイルのエンコードとDoxyfileの設定などの情報をどうぞ。 私のところでは文字化けしていないので。 # 尤も、日本語のファイル名なんて使ってないからファイル名が化けない保証はないが。
>>54 バージョン1.5.6 なら、Doxygen自体のバグっぽいです。
公式のバグレポートには、ポーランドの人からも
ポーランド語特有の文字が化けると報告されてます。
1.5.5と1.5.6でツリービューの処理が変わってるので、
そこでエンコーディングの処理をミスしたまま、
作者様はラテン1な国の人なので気付いてないってとこではないかと。
58 :
55 :2008/08/02(土) 09:09:18
お、私が使っているのはCygwinのインストーラで入れた1.5.5だ。
60 :
54 :2008/08/05(火) 21:35:07
ありがとうございます!バージョンの違いってのは気づきませんでした・・・・ これでキー一つでビルド&ビルド後処理ができるようになりました。
今までdoxygenの事を全く考えずにC++で開発していたんですが、 突然思い立ってdoxygenで出力することにしました。 当然、対応形式のコメントでないので一切出力されません。 一から書き直そうと思うんですが、せめてソースを静的に解析して 関数やファイルの頭に定型のテンプレートを追記してくれるようなツールがあればと 探してるんですが、何かないですかね?
>>61 そんなことしなくても、コメントの付いてない関数も含めて無理矢理出力させるオプションがあったはず。
DoxyfileのEXTRACT_ALLの項目をNOからYESに変えてみたら?
63 :
61 :2008/08/26(火) 18:34:24
はい。その設定で関数は出るんですが、クラスとメンバが 何をしているかの簡単な説明も表示したいと思っています。 既に大量のソースが存在する為、少しでも手間をかけずに実現したいと試行錯誤中です。 自分の様にプロジェクトの途中からdoxygenの使用を考える人間が、 どのようにこの問題を解決しているのか知りたいところです。
努力と根性じゃね?
>>63 とりあえず、説明文を付けるのは名前だけで中身を判断できないようなクラスやメンバだけに限定しようぜ。
66 :
61 :2008/08/26(火) 23:15:44
>>64 >>65 先ほどgccxmlを使用して自宅の環境で関数の位置と引数の情報を取得することができました。
ここからコメントを挿入していけばよさそうです。
お二人はdoxygen以外に勉強しなきゃいけないことがあるように思いますよ。
本当にありがとうございました。
67 :
65 :2008/08/26(火) 23:33:51
>>66 四行目が蛇足すぐるwww
でもまあ、健闘を祈る。
あと、無理するなよ。形だけのドキュメント作業なら特に。
68 :
61 :2008/08/26(火) 23:56:08
>>67 大丈夫ですよ、あなたみたいにひ弱じゃありませんから。
69 :
61 :2008/08/27(水) 00:18:56
名無しに戻ろうと思ったのですが偽者が湧いたので。
>>66 は私本人ですが、
>>68 はどこぞの馬の骨です。
>>67 ありがとうございます。
"努力と根性"という言葉に何故かカチンときてしまい棘のある文章になってしまいました。
プログラマやその上司が気軽に使っていい言葉ではないと考えます。
たかが2chの戯言なのに、と自分でも驚いていますが。
ドキュメントはネット上で一般公開予定なので、なるべく解りやすいものを心がけます。
これ以降、私が
>>61 で書き込むことはありません。
書き込みがあったとしたら、それは私以外の誰かです。
70 :
61 :2008/08/27(水) 00:21:13
いいえ、>69こそがどこぞの馬の骨です。 そもそも、まともな神経をしていたらレスをつけてくれた人に馬の骨なんて使うわけないじゃないですか。
71 :
65 :2008/08/27(水) 00:41:27
ワロタw
>>61 もその程度で躓くレベルでしかもきもいときた
73 :
デフォルトの名無しさん :2008/09/25(木) 11:13:21
word出力したら途中までしかクラスが出てこないのは何故?
>>73 htmlでも出ない?
なんか変な記述があるとそれ以降が出ないことがあった。なんだかは忘れた。
75 :
デフォルトの名無しさん :2008/09/25(木) 13:04:40
>>74 htmlだと全部出てるだけど、途切れてる部分見直してみる
ありがと
76 :
73 :2008/09/25(木) 13:26:05
>>74 確認してみたけど、特に変な記述は見当たらなかった
でも、たまに出力先のwordでカタカナ部分が文字化けしているとこがあった
OUTPUT_LANGUAGEがJapaneseだと全く表示されず、Japanese-enだと途中まで表示されて
今Englishに変えたら文字化けだらけだけど全部出てきた
INPUTもOUTPUTもcp932でしてるんだけど、どうすりゃ文字化けせずに日本語だせるかな…
77 :
73 :2008/09/26(金) 15:47:20
追加報告です。 doxygenのVer1.54使っていましたが、1.47でword出力すると問題なくできました ご迷惑おかけしました
doxyはバージョンあげると劣化することもあるからなあ 最新版のツリー表示の日本語化け直らないかなあ
79 :
デフォルトの名無しさん :2008/10/03(金) 00:09:52
1.5.7 age
80 :
デフォルトの名無しさん :2008/10/09(木) 12:07:46
v1.5.7.1 age
>>78 1.5.6でchm形式でインデックスのエンコーディングを選べるようになって文字化けが解消されたから、それで我慢すれ
C言語の構造体で、gccのattributeがメンバ「関数」扱いされてしまう これどうにかならないかな? OPTIMIZE_OUTPUT_FOR_CはYESになってる struct Foo { int Bar __attribute__((aligned(32)));
>>82 Cにない構文は、INPUT_FILTERにsedかなにかのスクリプトを指定して事前に取り除くしか。
85 :
82 :2008/10/22(水) 10:40:25
>83-84 ありがとう、ただそれだとattributeが消えちゃうよね なんとか残したまま正しく動作させたいんですよ
1.5.x で enum EnumName に対して @relatesalso StructName を書くと StructName のページに EnumName が出るようになるのですが、enum のメンバーのリストが表示されなってしまいました。 1.4.x ではできていた記憶があるのですが、1.5.x で正常にする方法はあるでしょうか? OPTIMIZE_OUTPUT_FOR_C は YES です。
正しく=attributeを残したまま、メンバ変数はメンバ変数として認識だろjk
正しくって…… そんな拡張に一一対応しろってのか? ソースあるんだろうから自分でやれよと思うのだが。
いちいちソース書き換えとかコスト見合わないでしょ だからそれ以外でなんとかする方法を探してるんじゃないか? まあattributeは確かに独自拡張だが、gccだし割とよく使われてるんで対応してても良いと思う
汎用的に 構文解析時だけ指定キーワードを無視するオプションがあればいい つか、ないのかな?
>>91 あなた流に言うと、コストに見合わないので対応しません
作者かよww
そもそもC言語にメンバ関数は無いんだからdoxygenのバグとも言えるだろ 想定外の構文には警告なりエラーなり出して欲しいよな
例えば@paramとかって変えられないの?
97 :
デフォルトの名無しさん :2008/11/08(土) 17:25:21
mac osx 10.5.5 doxygen 1.5.7.1 で実行しようとすると、Failed to run doxygen と言われて一切実行できません。 対処法知っている方、教えて下さい。
クラス関連図って作れますか? 1クラスの構造を図にはできるみたいですが・・・ C++です。
graphvizがあればできるよ。
@dateの後ろに付ける日付をsubversionが自動更新してくれるように $Date$にしたら、出来たhtmlで日付の見出しが2重になってました。 もしかしてバージョン管理システムのキーワードをdoxygenが認識して 適当に見出し付きで整形してくれるんでしょうか。 マニュアルにそれらしい説明を見た覚え無いんですが。
公式とかで、きちんとした例が*.hしかないと思うのは気のせい?
ちょっとメモ。 doxygenで出力したRTFがどうも文字化けするので調べてみたら、\\'を\\\'に変換することで解消することが判った。 要は\を表すのにそれ自身をエスケープして\\とする必要があると言うことなのだろうか。もうちょい調べる必要はありそう。
103 :
デフォルトの名無しさん :2008/12/27(土) 23:00:37
日本語がうまく通らない原因ってどこにあるの?
>>100 doxygenは$date$を認識するみたいだね。だから@dateは書かなくていい
105 :
デフォルトの名無しさん :2008/12/28(日) 04:51:23
Doxygen 1.5.8 age
106 :
デフォルトの名無しさん :2008/12/28(日) 05:06:03
アップデートコネーから自分で作るか…
>>101 ヘッダーに書けば十分だからじゃないかな。
でも、詳細をヘッダーに長々と書いてヘッダーが読みにくくなりそうなときは、詳細だけcppに分けて書くことはあるよ。それでもdoxygenはちゃんとまとめてくれる
108 :
101 :2008/12/28(日) 15:47:03
>>107 thx
十分かとも思えてきた。
概要かけばいいんだもんな。
漏れは最近doxygen向けのコメント付けはじめたからもうちょい使って慣れてみるわ
>>103 Shift-JISコードの2バイト目に\を割り当てたマイクロソフトに原因がある。
110 :
102 :2008/12/29(月) 14:53:28
更に追加。他にも、エスケープすべき文字をエスケープしていない箇所を発見。 xyzzyの場合の正規表現置換でこれを行なうとかなり改善する。 (query-replace-regexp "\\(\\\\'..\\)\\([{}][^ ][^t]\\)" "\\1\\\\\\2") # 場当たり的だなぁ……
111 :
102 :2008/12/29(月) 14:56:31
あー、済まない、補足。 文字列中に出てくる「{」も「}」も、どちらもエスケープしなければならないと言うのが>110の対応。 但し、文字列中かどうかの判断を厳密に行ないたくないので手元のファイルで場当たり的に対応してある。 誰か、ソース拾ってきて対策してくれる奇特な人はいないもんかのぉ。
>>111 文字列として表示されるべき「{」や「}」がエスケープされてないってこと?
いつもHTMLしか出してなかったんだけど、試しに手元にあるソースでRTF出してみたら、
こちらではリストをネストさせてるところで、上の階層の行末の書式文字の「{」が
普通の文字として扱われたりして、「{」と「}」の対応が崩れてエラーになってるっぽいです。
(いや、ネストされて表示はされてるから、書式文字以外に余分に「{」が付いてる?)
行末が特定の文字(「定」とか「得」とか)の場合になるみたいだけど、
条件がよくわかりません…
113 :
102 :2008/12/29(月) 16:16:27
>>112 2バイト文字の2バイト目に{}\のいずれかが来るケースで、エスケープされないようです。
# 「定」「得」どちらも該当しないようですが……
処が文字列を明示的に区切らないのがRTFの仕様らしくて、キーワードとしての{や}と区別が難しいのですよ。
実は>102の対策だけだと{}の対応が崩れてしまってrtfの一部だけしか読み込まれないことが判って気づいたんですが。
# 客先に実態の1/3程度しか分量がない資料を提出しちゃったのは内緒w
念のため確認したら、手元のDoxygenはCygwin同梱の1.5.5でした。
# さて、rtfを変換するツールを真面目に作るのとdoxygenそのものを修正するのとどっちが楽だろかw
>>113 だいぶ前からエンコーディング指定して全部一旦 UTF-8 に変換されるようになったから
その手の問題は解決済みだと思ってるんだけど、何かバージョン上げれない理由でもあるの?
cygwinの最新は1.5.5-1だね。 つまり、解決済みではないらしい。
cygwinは使ってないので、それが理由かどうかは知りませんが、 1.5.6から1.5.7.1まではフレーム付きHTMLのツリービューで 英数字以外が文字化けするという問題がありました。 2日前に出たばかりの1.5.8でやっと解決されました。
>>115 Windows ネイティブ版を使えない理由があるの?
全部一旦 UTF-8 に変換されるようになったのは、1.5.2以降だから、
>>113 ,
>>115 の cygwin版も UTF-8 に変換されるバージョンです。
最新版でも日本語RTFはかなり駄目な感じです。
手元のソースを処理させてみたら、目次の見出しの「目次」の後ろとか、
あちらこちらに見えてはいけない「\par」や「{」が見えて、
本文数ページで破綻します。
HTML だと問題ないってことかな? HTML しか使ってないからよくわかんないや。
120 :
118 :2008/12/29(月) 22:31:08
昔、1.4.6でRTFを作ったことのあるソースを、設定をほとんど変えずに1.5.8に掛けても駄目でした。 1.4.6で作ったRTFの半分ぐらいしかファイルサイズがありません。 むしろ内部処理が UTF-8 になってから、おかしくなったんじゃないかという気がしてきました。
折角色々対応してあったのを、UTF-8にしたのを機に捨ててしまったような感じだな。 この正月休みの間に暇があるようならソースでも見てみるか。
過去のバージョンを取ってきて順に試してみました。 1.5.0までは日本語の RTF が生成できて (おかしなところが無いかまではチェックしてませんが)、 1.5.1で、 "Warning: Output language Japanese not supported! Using English instead." と表示され、日本語が表示できませんでした。 ここで一旦無かったことにされたようです。
問題分かったかも。 id 437346 のバグレポートで日本語対応の議論がされてるんだけど、 報告者の人が提案した、 x080より大きいバイトが来たらマルチバイト判別フラグON、 次のバイトでフラグOFF、というのをそのまま採用してくれたらよかったのに、 0x80より大きいかの判断をそのままフラグに入れちゃってるから、 2バイト目が0x80より大きい場合に、その次のバイトまでエスケープされて、 それがエスケープされたら困るものの場合に不幸になってるということかと。
repopかければいいのに。 rtfって何で読めるんだろう。AbiWord?ooo?
>>123 事はそう単純じゃない。というか、もっと単純。
内部UTF-8をcp932に変換して、必要ならエスケープすべきなのにそれをしていないと言うのが>102=113の観測だろ。
例えば「ソソ」が「\'83\\\'83\\」にならないといけないのに「\'83\\'83\」になると。
それとも、二種類の問題が独立して存在しているのか?
126 :
123 :2008/12/30(火) 10:22:07
>>125 ああ、すいません。
>>123 で書いたのは、1.5.8の場合の問題です。
>>102 ,,
>>113 の、.1.5.5の問題はエスケープされてないというので合ってると思います。
1.5.8でそれに対する対応が入れられたけど、方法がまずく、
今度は逆にエスケープすべきでないところまでされたという話。
128 :
デフォルトの名無しさん :2009/01/08(木) 07:49:37
とりあえず保守ですが、あけおめ。 日本語rtf使えるようになるといいですね 自分はまだ皆様のようにハックに参加できるほど技術がないので、精進したいと思います。
129 :
102 :2009/01/08(木) 09:55:41
又更につまらない問題に遭遇。 折角修正したrtfがWordだと読めるのにOpenOfficeだと文字化けする。 例えば、「\'83\\」のような>125が指摘した例だと、「\'83\'5c」のようにしないといけないらしい。 あーもう、rtfを解析するしかないのかなぁ。 # doxygen1.5.8で変わっているらしいからそっちに手を出すのは避けたいし。
解決しました。ありがとうございました。
1.5.8 のrtfのエスケープバグのソースって どのファイルなのかな?
132 :
102 :2009/01/10(土) 15:17:25
ちょっとLinuxに1.5.8をインストールしたので出力してみたが、これは酷いw 2バイト文字を全てコード出力しているのはいいが、>123のように無関係なコマンド文字まで巻き添えにしてしまっている。 おまけに、コマンド文字列を何故か\commentで括ってしまっているので収拾がつかない状態。 そうそう、html出力のツリービューも、(UTF-8)指定なのにも関わらずプロジェクト名がEUCで出力されるので化け化け。 誰かなんとかして〜w # ってことで、>131に期待♪
うはw ぼくとしては>102さんに期待してるんだけどっw
>>134 ソース位置ありがとう。
これって、よくわかってないけど、postProcess()で、ファイル全体を
エスケープしてるのかな。
もしそうなら、rtfでの表示される文字列以外も全部エスケープされて
しまい、上のバグが症状がでてるんじゃないかな?
rtf表示文字列だけをエスケープするようにするには、postProcess()
の中でやってちゃだめで、rtfgen.cpp(にあるか知らないけど)
で表示文字列をrtfタグ中に埋め込む時コード当たりでやらないといけなそう?
とりあえず、doxygenをWindowsでコンパイル出来る環境作り
からやらないといけないのが辛いorz
>>135 頑張れw
Cygwinなら協力する。
# つーか、ソース拾ってきて自分でやれ>自分
137 :
134 :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
おー、これは凄い。後で試してみるか。
てか、
>>137 のURLが示すバグをreopenして開発者に教えてあげればいいんじゃないの?
アカウント持ってないから誰でもreopenできる設定なのかはわからないけど
いかん、未だ試せてない……
コメントが一切ついてないソースに 関数の定義部分だけ自動的に タグを生成してくれるツールないですか?
>>142 このスレ的には、タグというとDoxyfileのタグのことになるのだがそれでいいのかい?
@が付くやつがいい
ドキュメントつけしてない関数も出力するオプション?
147 :
139 :2009/02/15(日) 17:55:27
やっと>138を試せた。取り敢えず、cygwinからでも使えることと日本語が化けないことは確認した。 但し、OpenOffice(3.0)では{comment[^{}]}を取り除く必要があったこととTITLEなどのフィールドは 巧く変換できなかったけれど、これは元からそうなのかもしれない。 今度機会があれば、素直にMSwordに食わせてみるとしよう。
148 :
139 :2009/02/17(火) 18:58:43
cygwinで>138を動かし、できたRTFをWORD2000に食わせた。 全選択してフィールドの更新、画像アンリンクのマクロを動かして、 docに名前を変えて保存。一応、スタンダロンで使える資料になるようだ。 で、画像アンリンクのマクロって需要あるかな。あるようならどっかで公開するけど。
doxygenのライセンスってGPLですよね。 doxygenのコメントを書いたソースって公開しないと駄目ですか?
ならないよ GPLのお絵かきソフトで絵を描いたようなもん
151 :
149 :2009/02/28(土) 05:50:38
DoxyfileもGPLに該当しないのかな。 それとも、コメント部分は削除しておいた方が無難?
ソフトのドキュメントを作るのにDoxygenを利用してもGPLにする必要なし。 ソフトの機能としてDoxygenを利用する場合はGPL。
@a と @p ってどう使い分けてる? どっちも文中の引数のフォントを変えるために使うものみたいだけど。
\aは「特殊なフォント」ということで一般的にはItalicかな。 \pは\cと等価で「タイプライタフォント」ということで等幅フォントが使われる。 後は、実際の出力を見て検討したら?
156 :
154 :2009/04/09(木) 00:04:14
普通はどうする、ということは特になくて、見た目の好みで使えばいいのですか。 ヘルプを見ると、@aは "refer to member arguments" 、 @pは "refer to member function parameters" と書かれてて、 微妙に使い分けがあるようなないような、よく分からなかったもので。
意味で使い分ければいいと思う。 フォントとかの体裁はCSSで変えられるんじゃなかったかな?やったこと無いけど。
@a の argument が実引数で @p の parameter が仮引数なわけだけど、 コメント中では仮引数しか現れない気がする。実引数が現れることなんてあるか?
恣意的に使い分ければいいんじゃね?
>>157 出力するものによって指定するスタイルシートや指定方法は違うけど、htmlならcss,だね。
やったことないけどw
member argumentがクラスのメンバー変数ってことはないかな。
>>158 @p param1 の値が @a xxx だったら〜
みたいな説明を書くのに使うとか?
メソッドのコメントは、戻り値がなくても「@return なし」と明示的に書くべきでしょうか? 引数がない場合も同様に「@param なし」と書くでしょうか?
前者はお好きにどうぞ。 後者は「なし」なんて引き数はないぞって警告が出るんじゃないかな?
164 :
162 :2009/04/25(土) 21:45:11
>>163 レスありがとうございました。
確認したら「@param なし」ではwarning argumentと出ましたのでこれは書かないようにします。
今の大会は、開発環境の違いによる面白さもあると思う。 共通スペックでやるなら別に大会をおこせばよいと思う。
167 :
デフォルトの名無しさん :2009/04/30(木) 23:56:10
Doxygen 1.5.9 age
さっきまでは1.5.8だったのに。早速試すぜ。
169 :
デフォルトの名無しさん :2009/05/12(火) 10:55:11
ソースの先頭のコメントの 理想的なサンプル を教えて。 言語は問わないけど、出来ればCで。
理想的かどうか知らんが、私の典型。 -- //////////////////////////////////////////////////////////////// /// \file foo.c /// \brief あーたらこーたら /// /// あーたらこーたらをあーたらこーたらするとかなんとか。 /// \date 2009/3-4 /// \author bar\@site /// \attention なんだかんだ /// \version hage.hige.hoge // --
>>169 とりあえず最小限はこうだろ。 JAVADOC_AUTO_BRIEF オンで。
/** @file
* 簡単な説明.
* 詳細な説明
*/
170 のやつだと、ファイル名はどうせ名前変更したときに更新し忘れるし、
日付や作者やバージョンはバージョン管理ソフトに任せればいい。
詳細な説明も attention も必要に応じて、だな。とにかく書かないで済むものは
書かないのが一番。
>>170 ありがとうございます。
>>171 そのバージョン管理ソフトに書かせるので心配ゴム用です。
表書くのってtableタグ使うしかないんでしたっけ? それだとソース上で見づらいんで、 リストみたいに簡易記法があればいいんですけど。
doxygenって使ったこと無いんだけど、 ぶっちゃけて言うと、オススメですかい?
>>174 おすすめとは言えない
でも面白い使い道がある事は確か
実際に走らせてみて「おー」とか言って楽しむものだと思う
>>174 クラス関連図とか、煩いクライアント向けのコーリングツリーを作るのに便利。
# 余程酷いソフトハウスに当たった経験があるのか、関数の依存関係を知りたがるクライアントがいるのよ。
177 :
174 :2009/05/14(木) 22:16:15
>>175-176 ほっほー。
ありがとう。
「ある程度習熟するために勉強を要してめんどくさそうだ」
と思っていたが、試してみようかなあ。
>>177 コメント付いてないのも全部出力する設定で、
とりあえず手持ちのソースそのまま掛けてみたらいいよ。
それで出来上がるものが気に入れば、それから書き方に慣れていったらいいし。
Graphvizの使い方が秀逸だと思う これは出力結果を印刷してじっくり眺めたい
180 :
177 :2009/05/15(金) 06:46:11
>>178 ありがとう。分かった、そうしてみるわ。
客先から小汚いソースを受け取ったら、取り敢えずDoxygenに掛けて 静的解析するのは基本だな。
>>171 subversionとかの置き換えキーワードもdoxygenは認識してドキュメント化してくれる。
ちょっと詳しい説明を箇条書きで入れたいんだけど、 空白行が入るとパラグラフが終わってしまうので、空白行を一切入れないで 長い文章を書かなきゃいけなくなり、なんていうか ソースコードのコメントが非常に見づらい。本末転倒な気がするんだけど、 空白行を無視してくれる方法とか、ない?
>>183 ソースコード上でだけ行間が空いてればいいのなら、
全角スペースを入れておけばどうでしょう?
ドキュメント上で行が連結されたときに、余分な空白が入りますが。
ドキュメントでも行間が空くようにしたいのなら、
行頭の邪魔にならないところにでも「@n」を入れておくぐらいしか思いつきません。
doxygenであるライブラリのドキュメントを作った時、 そのライセンスってどこにどうやって記載すればいいの? ドキュメント内に表示されるようにしたいんだけど。
187 :
174 :2009/05/24(日) 16:39:03
doxygen気に入ってきた。 C++とdoxygen最新版にて。 ドキュメント作ると名前解決に使う::がドキュメントにもりこまれたり盛り込まれなかったりする。 例えばNameS::MyClassが、 ドキュメントの100行目ではNameS::MyClassになっているのに 101行目ではNameSMyClassになっていたりする。 これはどう解決すればいい?
>>187 このレスの流れを見ても分かるように、Doxygenは文字コードの扱いが未だ未だ不安定だったりする。
あんたの言う、「ドキュメント」がrtf出力ならこのスレにある対策版を使ってみた方がいいかもしれないし、
chm出力なら>185を参考にするといいかもしれない。
>>186 @mainpageコマンドでメインページに入れるか、
@pageコマンドで独立したページにすればどう?
190 :
174 :2009/05/25(月) 23:27:45
>>188 ありがとう。
説明不足だったね。
ドキュメントはフツーのHTMLなんだよね〜。chmじゃなくて。
>185をやってみたら文字化けは解消したんだけど
>> ドキュメントの100行目ではNameS::MyClassになっているのに
>> 101行目ではNameSMyClassになっていたりする。
この現象は解決しないのだ。。。
191 :
186 :2009/05/25(月) 23:41:59
>>189 @pageコマンド
なんて初めて知ったわ。
どこかいい解説サイトとか紹介してくれる
お方、いらしたらお願い!
>>191 doxygenに付いてくるサンプルも参考になるよ。
当然全部英語だけど、記述例のソースと
それを使って出力されたドキュメントがある。
コマンドの説明が知りたかったら、
>>1 のサイトの日本語版マニュアルを見ればいいし。
193 :
186 :2009/05/27(水) 19:11:01
いつの間にかDoxywizardもだいぶ使いやすくなったんだな
195 :
186 :2009/05/28(木) 06:28:18
俺は最近doxygenを使い始めて、 最初に Doxywizard を使ってかなり直感的に操作できたから知らなかったが、 そうなのか。前は使いづらかったのか。 grach
>>196 define_test.h のファイルのページ自体は出来てる?
実際のファイル名と @file の後ろに書いたファイル名が合ってないとかはないかな、と思ったもので。
198 :
196 :2009/05/30(土) 23:13:55
199 :
197 :2009/05/31(日) 00:25:04
>>198 define_test.h ファイルのドキュメントのページができてないね。
>>196 のソースをコピペして同じ名前で保存してみたけど、
こっちじゃちゃんと出力されてるよ。
Doxyfile 晒してもらえるなら、何が違うか比べてみるけど。
200 :
197 :2009/05/31(日) 00:31:38
>>198 もしかして、SHOW_FILESがOFFになってない?
Doxywizard使ってるなら、ExpartのBuildの下の方。
201 :
196 :2009/05/31(日) 04:59:33
202 :
196 :2009/05/31(日) 05:04:41
追記: SHOW_FILES=NOになっていましたが、 YESにしても変わりませんでした。 私の環境は windows xp sp2 doxygen 1.5.9です。
203 :
197 :2009/05/31(日) 05:45:10
>>201 WARN_IF_DOC_ERROR を ON にしたら判明した。
ENABLE_PREPROCESSING が OFF だとマクロは見てくれないらしい。
204 :
197 :2009/05/31(日) 05:51:37
補足 WARN_IF_DOC_ERROR を ON にしたら、 「マクロにコメント書いてるけど、ENABLE_PREPROCESSINGがOFFだからスキップしたよ」 というようなメッセージが表示された。
205 :
196 :2009/05/31(日) 14:59:44
206 :
196 :2009/05/31(日) 22:27:30
追記: テキストエディタでDoxyfileを開き、 = NO を検索して全て = YES に置換してみました。 それでdoxygenを走らせたところ、見事#defineは出力されました。 やはり設定が問題な様です。
207 :
196 :2009/05/31(日) 22:43:14
どこの設定が問題なのか探るために Doxyfileにて二分木法的にNOをYESに置換してみました。 ファイルのど真ん中の行を基準に上だけないし下だけを 全部NO→YES置換を行いました。 しかし、このどちらも#defineが出力されません。 やはり複数の設定項目が関わっているようです。
208 :
196 :2009/05/31(日) 22:56:12
解決しました。 正解は ・ENABLE_PREPROCESSINGをYESにする。 ・SHOW_FILESをYESにする。 でした。両方が同時に満たされていないとだめなようです。 お手数をおかけ致しました!
209 :
197 :2009/06/01(月) 01:23:37
>>205-208 解決したようなのでもういいかもしれないけど、
WARN〜系の設定は、出力状態を変更させるためのものではなくて、
コメント付けてるのに出力されない設定になってるとか、
記述漏れがあるとか、そういうエラーメッセージを表示するためのもの。
今後何かうまくいかないときに参考になるかもしれないので念のため。
210 :
196 :2009/06/01(月) 05:54:55
>>209 はい、WARN〜系の設定に関して、よく頭に入れておきます。
ありがとうございました。
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に出力します。
になってしまいます。
再現条件は絞れておりません。
どうかお知恵をおかしください。
よろしくお願い申し上げます。
>>211 理由はよく分からないけど、std::coutの前後に空白を入れたら正しくなりました。
識別子っぽいものに非ASCII文字がくっついてたらおかしくなるってことじゃないかと思うんですが。
213 :
211 :2009/06/02(火) 06:08:56
>>212 たしかに、前後に空白で正しく表示されます。
本当に適用したいソース(再現用ソースでない)でもうまく表示されます。
ありがとうございました。
>>195 今のdoxywizardはver.1.5.8(去年の暮れ頃)からですね。
基本的な設定項目だけのwizardモードと、
設定可能な項目が全部表示されるexpertモードの2本立てというのは
昔も今も変わりませんが、
設定を変えたら保存しないと実行できなかったとか、
設定項目のセクション切り替えがタブで、expertモードだと
たくさん並んでるのをぐるぐるスクロールさせる必要があったとか、
細かいところで少し不便でした。
マニュアルに載ってるスクリーンショットは旧バージョンのような気がします。
doxygenで、1カ所に書いたコメントを複数箇所で参照する方法はありますか? 例えば、 hoge.h内で@version 1.1.1 という記述が同じhoge.h内で他にも複数箇所に登場する場合、 全部に@version 1.1.1と書いてしまうとバージョンを上げる時に 全箇所を手動で修正する羽目になってしまいます。 どうにかする手段はありますか?
>>215 設定ファイルのALIASESで@version 1.1.1に別名をつければ、
バージョンを上げるときはそこだけ変えればOK
というのはどうでしょう?
217 :
デフォルトの名無しさん :2009/06/03(水) 03:43:33
質問です。 いままでのプログラムは以下のようにコメントしていたのですが、 doxygenでは/** */の形式にしないとドキュメント作成はできないのでしょうか? コメント部分を目立たせたいので、できれば今までのコメント形式を維持したいのですが・・ 今までのコメント例 //******************************************************** // Test.cpp // 2009.09 by Tester // テスト用のクラス //******************************************************** これを /** * * * */ 形式にするのは少し抵抗があります
>>217 特定の形式にしないと、ドキュメントにしないコメントと区別できないですからね……
使えるコメント形式はマニュアルの「Documenting the code」にいろいろ例があります。
(日本語マニュアルは古くて少し情報が少ないです)
今までのに比較的近いのは
/*****************************************************//**
* Test.cpp
* 2009.09 by Tester
* テスト用のクラス
*********************************************************/
でしょうか。
>>217 最初と最後の //****** はそのままで、途中の行だけ先頭の//を3文字にすればいい
つまり、こうだな。 //******************************************************** /// \file Test.cpp /// \date 2009.09 /// \author Tester /// \brief テスト用のクラス //********************************************************
>>217 俺も抵抗があったけど、
変えてみたら意外と平気だったよ。
要は見慣れるかどうか。
>>216 ALIASES
なんてものがあるのですね。
ありがとうございます、試してみます。
223 :
デフォルトの名無しさん :2009/06/03(水) 22:23:44
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だけ残して他のファイルを別のフォルダに押し込む というようなフォルダ構成を構築したいのですが、そういったことは可能でしょうか?
>>223 ファイルの最初のコメント:
ファイル名の大文字・小文字の問題かもしれません。
ファイル名無しで @file だけにしてみてはどうでしょうか。
フォント:
フォントはデフォルトのスタイルシートで、
font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif;
と設定されてるので、
特にカスタマイズしてなければゴシックで表示されるはずなんですが。
>>224 対象を指定しないドキュメントは、直後にあるものに関連づけられます。
ファイルに関するコメントにしたいなら、@file が必須です。
>>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. これだと冗長な感じでちょっと抵抗があります
っ nameタグ
>>229 普通は、一つのコメントで括られるような変数は構造体に入れるもんじゃね?
>>231 座標とかだと、配列の方が扱いやすいかも
構造体の方が見やすいけどね
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)
の様にコメントをこの場所に入れたいしたいのですが、可能でしょうか?
>>234 マニュアルの「Grouping」(日本語版マニュアルだと「グループ化」)のページを見てください
>>235 それで出来るのですね。
ありがとうございます。見てきます。
doxygenで作ったthtmlドキュメントの 若干ながらフォントサイズが小さすぎると感じます。 このフォントサイズを大きくすることはできますか?
238 :
234 :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
と付いただけでした。
どこが誤っているでしょうか?
よろしくお願いいたします。
法則性はその
>>238 と
>>239 の違いの@nameの有無の部分ですよ。
マニュアルより:
ブロックの開標識の前に、独立したコメント・ブロックを置くこともできます。
このブロックは、@name (または、\name) コマンドを含む必要があり、
グループのヘッダーを指定します。
そうしたければ、グループに関するより詳しい情報をコメント・ブロックに
含めることもできます。
241 :
239 :2009/06/06(土) 22:36:14
>>240 doxygen用語の理解が今ひとつ足りなかったようです。
親切にありがとうございました。
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の問題だとしたら若干スレ違いかもしれませんが、
よろしくお願いいたします。
243 :
242 :2009/06/07(日) 13:43:31
>>242-243 DOT_FONTSIZEが小さい(デフォルト値は10)のが気になりますが、
正直なところデフォルト設定と余りに違いすぎて、それだけなのかどうかは何とも。
もしこだわって作りこんだ設定でないのなら、一度デフォルト設定に戻して、
最低限必要なところだけ変えるようにしてみてはどうでしょう?
デフォルト設定にはメニューから[Settings]→[Reset to factory defaults]で戻せます。
>>242 どこを問題視したいのか判らんが、HAVE_DOTがNOだからクラス階層図が出ないのは当たり前なんだが。
つーか、
>>244 も含めて
Doxyfile位真面目に読んでくれ。
246 :
242 :2009/06/08(月) 06:55:17
247 :
244 :2009/06/08(月) 08:39:21
>>242 ,
>>245 >>242 のドキュメントではdotファイルが吐かれてるし、
クラス階層図はdotファイルの内容どおりに生成されてます。
文字が読めないのはフォントサイズが4のためです。
コラボレーション図はdotにノードがなぜか出力されてませんが、
画像ファイル自体は真っ白なのが存在していて、
dotファイルの内容どおりには生成されているといえます。
なので、これらはHAVE_DOT=YESの状態で生成されたはずです。
DoxyfileはHAVE_DOT=YESにする前に保存したものと思われます。
dotの中身が異常なので、ほかに問題があると思います。
Doxygenて __declspec(dllexport) int WINAPI MyFunc(int arg); とか、それを簡略化して #define API(type) __declspec(dllexport) type WINAPI とした場合に API(int) MyFunc(int arg); みたいな宣言もちゃんと処理してくれる?
249 :
242 :2009/06/08(月) 16:17:43
>>247 ありがとうございます。
全然こだわって作りこんだ設定ではありませんので、
デフォルトに戻すことに抵抗はありません。
いろいろ教えの通り試してみます!
250 :
デフォルトの名無しさん :2009/06/08(月) 22:09:14
>>248 __declspec()は関数と誤認識されるので、
PREDEFINED で __declspec(x)= を定義するなどして、
プリプロセス時に取り除いてやる必要があります。
(マニュアルの「Preprocessing」に書かれてます)
>>250 eeepc + winxp でやってるけど、ウチも全く同じ現象になるよ。
253 :
250 :2009/06/09(火) 19:08:32
レスありがとう。 じゃあエクスポートタブの設定はできないのですかね・・・? 日本語マニュアルを作成したいので以下の設定をしたいのですが 設定する箇所は2箇所です。まずProject内にある「OUTPUT_LANGUAGE」をJapaneseにします。これで日本語マニュアルが作成されます。ただ、このままだと文字化けが起こります。 続いて、Inputの中にあるINPUT_ENCODINGに「CP932」と文字を打ちます。CP932というのはMicrosoftなどが拡張したShift-JIS文字コードです。Visual Studioなどのソースコードはこの文字コードを指定するとDoxygenでうまく読み込んでくれます。 改善方法分かる人いたらアドバイスください よろしくお願いします
>>253 設定内容を保存したファイルはテキストなので、直接編集できますよ。
255 :
250 :2009/06/09(火) 19:54:02
>>255 念のため。
PROJECT_NAME 等に日本語を使ってる場合、UTF-8で保存されてるので気を付けて。
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
の様にしたいと思っております。
また、各マクロの説明文にある
値:〜〜
というのも非表示にしたいと思います。
どうすればよろしいでしょうか?
関数テンプレートなどの テンプレート引数を出力する項目は作れませんか?
>>257 MAX_INITIALIZER_LINES を 0 にするのはどうでしょう?
変数の初期値なども全部表示されなくなりますが。
261 :
258 :2009/06/12(金) 08:02:39
262 :
257 :2009/06/12(金) 19:21:47
>>259 MAX_INITIALIZER_LINESを0にする方法でいけそうです。
ありがとうございます。
doxygenの公式サイト(英語版) が見たいのだが、リンクが死んでいる気がする。 それとも単に落ちただけだろうか?
264 :
263 :2009/06/12(金) 23:59:05
単に落ちただけだったようだ。 勝手に騒いでスマソ。
保守
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でグラフ化されて表示されています。
よろしくお願いいたします。
>>266 HIDE_UNDOC_RELATIONS が YES だからじゃないかと思いますが、
NO にしてもライブラリからの継承まで図に含めてくれるかどうか。
INCLUDE_PATH にコンパイラのヘッダファイルのパスの設定もして試してみてください。
268 :
266 :2009/06/20(土) 23:31:56
保守
>>250 どうもパネル作成時のミス?のようです。
Exportタブの中身はWizardタブと同じように左右分割されているらしく、
「左側の何も無いパネル」「右側の設定パネル」という風になっています。
それで「左側の何も無いパネル」の幅が最大になっているため、
何も表示されていないように見えるようです。
マウスを右端に移動させるとカーソル形状が変化しますので、
そのまま左にドラッグすると設定内容のパネルが見えるようになりました。
271 :
270 :2009/07/03(金) 02:55:10
少し訂正 左右分割だけではなく左側が上下に分割された3ペイン方式でした。 「左側の何も無いパネル」のように見えるますが下のほうに移動してるだけでした。 270と同じように下から上にドラッグすると表示物が見えるようになります。
保守
>>273 ドキュメント見てみたけど普通の文字サイズだと思うけど。
そういえば最近のバージョンはちょっと前のより文字サイズ小さいかも。
DOT_FONTSIZE はグラフの文字サイズ、FORMULA_FONTSIZE は式の文字サイズです。
文字サイズを変えるにはスタイルシートをカスタマイズすることになると思う。
やったことないけど、マニュアルによると、
doxygen -w html header.html footer.html stylesheet.css
でデフォルトのファイルを出力して、それを書き換えて
Doxyfile の HTML_STYLESHEET でそのファイルを指定するらしいです。
275 :
273 :2009/08/08(土) 21:27:14
>>274 その方法で解決できました。
文字サイズは見る人によって好みがあると思っていましたので、
stylesheet.cssのフォントサイズ指定の部分を削除しました。
これにより人によって好みの文字サイズにブラウザ側で変更できるようになりました。
(前はブラウザ側でも文字サイズの変更が(通常操作の範囲では)できませんでした。)
どうもありがとうございました。
Doxygenはドキュメント生成ツールであってドキュメント記述言語ではないから 適宜表は表示されるよ。例えば関数一覧とかファイル一覧とか。 任意の表を記述したいと言うことなら話は別で。 元々html自体に表を記述するタグはtable以外にはないに等しいからねぇ。 横方向に高々2カラムしかないなら<ul>などで代用できなくもないけれど。
278 :
276 :2009/08/12(水) 13:14:58
>>277 ありがとうございます。
良さそうなのでもうすこしマニュアルを読み込んできます。
>>276-278 私も任意の表をお手軽に作る方法はないかなと思ってました。
今ふと思いついたんですが、関連のタグの組み合わせをALIASESで簡略化したらちょっとはマシかも。
保守
281 :
デフォルトの名無しさん :2009/08/22(土) 01:18:19
Doxygen 1.6.0 age
Doxygen 1.6.0で何か変わったことある? 設定とかは変わってないよね? また設定しなおしとか嫌よ。
>>282 二重引用符で囲っていた中で @a とか使ってたのが利かなくなってましたorz
まんま " @a hogehoge "な具合に表示されてます。
バグなのか仕様変更なのかは知りません。
284 :
282 :2009/08/23(日) 11:47:44
>>283 ありがとうございます。
私は@ではなく\で書いているので問題ないですかね。
285 :
283 :2009/08/23(日) 19:42:34
>>284 それは試してないのでわかりません。
以前のバージョンから、「@」は利かなくて「\」なら利く局面もありましたから、
(例えば @dot 内の URL パラメータに \ref を使うとか)
もしかすると問題ないかもしれません。
なお、「"」の代わりに「"」を使えば、「@a」も機能しました。
ソースコメントでの視認性を考えるとやりたくないですが。
286 :
283 :2009/08/23(日) 19:45:40
>>285 あ、「”」の代わりに「&quot;」です。
(今度はちゃんと表示されるかな)
287 :
282 :2009/08/23(日) 20:21:51
>>285-286 なるほど。
詳細 誠にありがとうございます。
今のdoxygenで問題がないので、
念のためdoxygenバージョンアップするのは
控えておこうかと思います。
288 :
283 :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
293 :
291 :2009/09/01(火) 18:05:12
2chの方ばかり見ておりました。 ありがとうございます。
294 :
291 :2009/09/01(火) 20:42:47
>>294 lodaのコメントは、行頭に「\」や「!」を入れるのが
大文字化されないための書き方という意味じゃなくて、
文の先頭にクラス名がこない書き方を工夫すればという意味だと思う。
# 一覧表以外のところでは大文字化してないから、個人的にはバグじゃないかと思うけど。
「::」が消える件は
>>211-213 を参照。
296 :
291 :2009/09/02(水) 06:54:56
>>295 私もバグではなく仕様だとは思っています。
::が無視されるのはバグですが。
最速で
>>187 さんが触れてますね。
どうもありがとうございました。
プログラミング言語によっては全角文字も識別子に使えることを考えると、 文中に空白で区切られずに書かれてる識別子を正しく認識して欲しいというのは、 日本語の構文を理解する必要のある無茶な要求じゃないかな。
そうか? 別に煽りたい訳じゃ無いけど、消えてしまうのは文字コードの問題だと 考えるのが普通では? だって構文解析いらないでしょ。
299 :
297 :2009/09/05(土) 01:43:17
>>298 消えてしまうのはバグだと思うけど、
クラスメンバを認識して自動的にリンクを張る機能があるんだから、
その過程で「::」を特別扱いしてると思うのよ。
ていうかごめん、言葉が足りなかったわ。
言いたかったのは、バグが起きにくい書き方をするように
歩み寄ってもいいんじゃないかということなんで。
1.6.1を入れたのだけど、doxywizardで項目名が赤くなるのはどういう意味?
>>300 1.6.1前からでも赤くなかった?
おそらくデフォルト値から変更された物が赤いんじゃないかと思われる。
302 :
300 :2009/09/10(木) 20:03:13
>>301 どうもありがとう。確かに入力すると赤くなり、消すと黒くなるから変更されたところだ。
前は1.5.6を使っていただけど赤くはならなかったので、最初はエラーかと思った。
304 :
デフォルトの名無しさん :2009/09/16(水) 00:28:43
doxygenで、C++でhtmlドキュメントを作りたい時、 ここからここまでの範囲のソースはドキュメントしないでね あるいは このクラスはドキュメント化しないでね(ドキュメントに載せないでね) といった指示はできるのでしょうか? よろしくお願いいたします。
>>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
とか私はやってます。
308 :
306 :2009/09/17(木) 06:59:25
>>307 ありがとうございます。
そんな方法があったんですね。
309 :
307 :2009/09/17(木) 16:45:15
>>308 後で見返してよく考えたら「NO_DOXYGEN」だと意味逆でしたね。
まあそれはともかく、この方法を使うと、
たとえば利用者マニュアル用 doxyfile と
内部開発者用 doxyfile とかを使い分けて
(それぞれ別々の PREDEFINED を設定しておく)、
コード内では #ifndef を使ってマニュアルに出したいものを制御
なんてこともできます。
310 :
306 :2009/09/17(木) 21:03:18
>>309 なるほど、深いですね。
面白そうです。
ありがとうございます。
311 :
306 :2009/09/18(金) 00:20:10
312 :
306 :2009/09/18(金) 00:20:56
ちなみにちゃんと #ifndef DOXYGEN になっています。 #ifdef DOXYGEN だったりはしません。 よろしくお願いいたします。
313 :
307 :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 の時につくったものでした。
>>312 お前、馬鹿だろw
>307を読めば判ることで何とち狂ってるんだか。
315 :
306 :2009/09/18(金) 11:12:07
>>313 申し訳ございません。
ご指摘の通り大変みっともない間違いをしでかしており、
恥ずかしいかぎりです。
うまく動きました。
ありがとうございました。
317 :
307 :2009/09/18(金) 12:08:01
>>314 まあまあ。
マニュアル読むと、PREDEFINED と EXPAND_AS_DEFINED の説明は
確かにかなり紛らわしいのよ。試行錯誤の過程で勘違いしても仕方がない。
私もかつては戸惑った口。
>>315 お役に立てて何よりです。
doxygen 1.5.8を使っているんだけど、例えばstd::vector<std::vector<int>>が通らないのね。 きちんと> >にしないといけないらしい。
>>318 C++はC++0xになるまではそうでしょ?
コメント文でもそうだってことかい?
>>319 いやいや、会社でほたえちょる阿呆がおったからソースを見たら、>>で書いていたってことで。
それで気づいたんだが、VC++はエラーにしてくれないんだね。
>>320 そうなのか。
まあどうせC++0xでは認められるんだから
VC++もエラーじゃなくていいんじゃね。
>>322 私の方でも同じ現象が出てます。
自分の書き方が悪いのかもと思いつつ、
ほとんど追求してませんでしたけど。
324 :
322 :2009/09/19(土) 13:07:25
>>323 ありがとうございます。
私は同じsourceで
Doxygen1.5.9→1.6.1のアップグレードで症状が発生したため、おそらく仕様変更に伴う不具合だと思っています。
じき直ると期待しています。
> 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にしてしまえば良いわけでしょうか? それとも何がデメリットがあるのでしょうか?
>>325 Doxywizard で、 BUILTIN_STL_SUPPORT にカーソルを持っていったときに
表示される説明は、もう少し分かりやすいです。
STL のクラスを使ってるけど STL のソースをインクルードしたくない場合に
YESにするようにと書いてます。
ファイルの読み込みを抑えたいような場合でしょうか。
逆に処理系付属のヘッダも読み込む設定にしていて、 BUILTIN_STL_SUPPORT も
YES にすると、二重定義のような状況になるんじゃないかと思います。
327 :
325 :2009/09/23(水) 11:39:21
328 :
316 :2009/09/26(土) 18:13:55
どなたか
>>316 の解決策をご教示いただける有識者はいらっしゃいませんでしょうか?
どうかよろしくお願い申し上げます。
>>316 その参照してるだけで定義の無いexceptionをエントリとして出せるオプションがあるの?
330 :
316 :2009/09/27(日) 01:04:43
>>329 HIDEUNDOCMEMBERSをNoにして、出力させるとこうなりました。
331 :
316 :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を何か適当な物に変えれば良いのではないかと探ってみたのですが
どうしても分かりませんでした。
よろしくお願いします。
>>331 うちではexceptionクラスそのものが出なかった。
334 :
316 :2009/09/27(日) 22:56:11
>>304-315 今更だけど、別の方法があったので。
@cond と @endcond で囲んだ範囲は、
@cond につけたラベルを ENABLED_SECTIONS に含めるかどうかで、
ドキュメント化するかどうかを設定できるようです。
>>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なので念の為。
337 :
304 :2009/10/01(木) 10:51:57
ありがとうございます。 プリプロセッサを使った方法はエディタで対応する最初と最後をすぐ見つけらられるという利点がありますが、 @condと@endcondを使った方法はコメントだけで解決する->ソースに手を加えてはいないという点が利点ですね。
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 がドキュメント化されるところまでは 良かったのですが,行末に ///> で異なる説明を書いても両方の説明に同じものが(マージされて) 出てきてしまいます。 良い方法があったら教えてください。
339 :
338 :2009/10/06(火) 16:59:07
>>338 ちょっと間違い。上の例で #else のところが #elif になってしまっているので
修正したら,_MSC_VER と !MSC_VER を両方 PREDEFINED に書いておく
という手は使えませんでした。結局 PREDEFINED にどう書くかで,
片方のドキュメントしか作成されません。
340 :
304 :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 */
341 :
339 :2009/10/06(火) 18:54:46
>>340 さすがに両方の説明を個別に表示することは出来ませんが,それで事足りますね。
ありがとうございました。
この方法使うと,Doxygenがスキップしない部分には,
#define __FASTCALL "" or __fastcall
とかメチャクチャ書けますねw
>>338 /// @def __FASTCALL
/// ここに両方の場合の説明を書けばいいんじゃないの?
__FASTCALL は C++ では予約識別子だな。やめといたほうがいいぞ。
確かに。 予約されているから規格的に言えば未定義の動作になるな。
345 :
339 :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 大文字の方も予約されてるとは知らなかった。ありがと〜。
>>345 メチャクチャな説明がわかりやすいとか、おかしなことを言うね。
実用上問題なければ奇怪な書き方しないほうがいいだろうと思うし。
347 :
340 :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).
と言っているぐらいですし
多少の奇怪な書き方は許容範囲では?
タダの宗教論争になってしまいますが。
>>347 それを指摘するのは無粋。つーか、間抜け。
>>347 許容範囲なんだろうけど、ここでは奇怪な書き方をする必要がない、という話。
350 :
デフォルトの名無しさん :2009/10/10(土) 07:47:27
寧ろ、doxygen.cssをカスタマイズしている人には紹介してほしいなぁ。 ソースを公開しろとまでは言わないから。 後は、こんなのが欲しいなんてリクエストでもあれば創造意欲が沸くかも知れない。
しかしデフォルトのにしておかないと 将来のバージョンアップに毎回追随するのが 結構つらくなるのではと予感。
バージョンアップでかっこよくなったりするし
う、うん……(´・ω・`)
privateなメンバのうち、(純粋)仮想関数だけをドキュメントに出力する方法ってないものでしょうか EXTRACT_PRIVATE = YESとすると、見せたくないprivate変数や非仮想関数まで出てきてしまうのがイヤで・・・
>>357 そんな状況いままで無かったからな。
初めて考えてみる。
>>340 が書いた方式を駆使して
どうにかできそうな気もするが良いアイディアが浮かばない。
Doxygen 1.6.1 をソースパッケージから VC8 でビルドしようとしたのですが src/translator_*.h が言語毎にいろいろなエンコーディングで保存されていて文字列リテラルの部分でエラーが大量発生する (おそらく多バイト文字に '\' や '"' が含まれる) のですが、Windows でビルドするときは特別な 手続きがいるのでしょうか?
360 :
デフォルトの名無しさん :2009/12/05(土) 01:55:28
クラスメソッドの詳細の、“コンストラクタ・デストラクタ”のセクションに デストラクタが入らないのはdoxygenのバグだよね? あと、@nameコマンドで1つのクラスに同じ名前のメンバグループを 複数作った場合、それぞれが別のグループとして吐き出されるのは仕様? あ、どっちも1.6.1の話ね
>>360 > クラスメソッドの詳細の、“コンストラクタ・デストラクタ”のセクションに
> デストラクタが入らないのはdoxygenのバグだよね?
マジで?
試してくる。
362 :
361 :2009/12/05(土) 12:35:42
>>360 Version 1.6.1 にて出力されたぞ。
出力されないソースないしヘッダの例をうpしてくれれば確かめるけど?
363 :
360 :2009/12/07(月) 16:44:48
>>362 ソースはマニュアル内のこのページ(
ttp://www.doxygen.jp/docblocks.html )の
サンプルをそのまま使用
本体のバグでないならヘッダの問題かと思い、いろいろ試してみた結果、
INPUT_ENCODING=Shift_JISにした時に問題が起きた(CP932なら問題無し)
ちなみに、出力されないわけじゃなくて、通常の関数と同じセクションに
デストラクタが入ってる
デストラクタ名がチルダでなくオーバーバーで表示されてたので、
doxygenがデストラクタと認識してくれないのが原因か?
>>363 CP932
にしろってオフィシャルでどっかに書いてあったような気がする。
> デストラクタ名がチルダでなくオーバーバーで表示されてたので、
> doxygenがデストラクタと認識してくれないのが原因か?
その可能性が高そうだ。
365 :
デフォルトの名無しさん :2009/12/14(月) 10:46:24
>>365 似たようなことはできると思いますが、一致度は保証できません。
TradeMarkとやらで作ったようなことが書かれているので、それでは如何ですか?
素敵なcssがほしい。
EXTRACT_PRIVATE = NO の設定で一部の private 関数を文書化する方法はあるでしょうか? やりたいことは、ある基底クラスに private の仮想関数を定義して (派生クラスでその仮想関数 をオーバーライドするユーザーのために) その関数の仕様を Doxygen で出力することです。
>>369 ちょっと汚いソースになる気もするが、
>>340 と同じようにして
Doxygen上にだけprivateをpublicにしちゃえば?
html4ではなくxml1の読めるブラウザを使えばいいんでない? # 根本は解決していないけど。 例えば、IE6がこれに該当するからIE8を入れるとか。 どうしても根本的に解決したいなら、ソースを修正するとか出力を加工するとか。 つーか、手元のソースとDoxygenでは再現しないしzipをダウンロードするのは嫌なんだけど、 再現できる状態でここに貼れる程度に短くできない? それと、Doxygenのバージョンも宜しく。
>>372 確かにIE6で見ていたらだめでしたが、
Firefoxなら正しく表示されました。
ソースは
ttp://codepad.org/7giB9nil で、Doxygenは1.6.1です。
設定は
DOXYFILE_ENCODING = CP932
OUTPUT_LANGUAGE = Japanese
このぐらいです。
手元の1.5.9じゃ再現できないや。1.6.1持ちか詳しい人待ちだな。
html4.01にはaposがないんだからしょうがないんじゃない?
>>376 俺のところのIE6ってそんな準拠性の悪いクソブラウザだったんですか。
噂には聞いていたんですがねぇ。
ありがとうございました。
378 :
デフォルトの名無しさん :2010/01/03(日) 02:55:32
Doxygen 1.6.2 age
380 :
379 :2010/01/03(日) 23:52:47
仕様 変わりすぎだよチクショー!!!!!
381 :
デフォルトの名無しさん :2010/01/04(月) 00:08:12
doxygen.css の仕様が変わりすぎでございますorz バージョンが0.01違いなのに、こんなに変わるものだとは。 Doxygenって後方互換性という言葉には興味ないの?
俺以外に Doxygen 1.6.2 を使ってる人 居ないの? なんだか、 1. C++0xが公式仕様策定されて 2. ちゃんと各種コンパイラで実装されて 3. 現実的にC++0xを使っても大丈夫だと思うくらいになって 4. Doxygen がC++0xに対応完了 このくらいの条件を満たさないかぎり、別にアップデートしなくてもいい気がしてきた。 ブラウザとか中核ソフトとは違ってセキュリティもクソもない・・・しね?
>>382 まだ正月休み明けでみなさん忙しいのでは。
私も先ほどようやく試してみたところ。
ざっと見た感じだと、1.6.1 と比べると
>>322 で指摘されていた不具合とか、
friend関数のマニュアルを無視するバグが直ってたりして、
概ね好印象ですね。
>>383 ありがとうございます。
そうですか。
>>324-
>>324 は気付きませんでした。
じゃあやっぱ1.6.2で同じように作れるように自分でどうにか工夫するのが良い
って感じですかね。(私の主体性0)
1.6.2に更新したら、pageコマンドから作られたhtmlにタイトルが出力されなくなった… 似たような症状の人いる?
387 :
382 :2010/01/23(土) 20:33:41
>>386 おお!
俺も!俺も!
どうすりゃいいんだろうorz
>>386-387 pageに付ける名前に英数字以外(下線とか)を含まないように、
というようなことがMLに書かれてました。
389 :
387 :2010/01/29(金) 00:03:56
まじか!
>>388 ありがとうございます。
感謝です。。。
>>388 トンクス!表示されたぜ!
ML見てきたんだが、
>ドキュメントにアンダーバー不許可と明示されてはいないけど、
>名前は英文字と数字の組み合わせからなる、とは書かれていて、
>そこにアンダーバーは含まれていないでしょ。
みたいな返答だった。
でも以前は使えてたわけだし、@page以外のタグは問題ないし、
ドキュメントが更新された形跡もないし、やっぱなんかバグっぽいよね。
>>390 このまま待機で、いつの間にか
(次のverで)修正されるんじゃないかなぁ?
次のverっていつでるんだ。。。
>>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)
ということで、次にリリースされるのは
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 氏の解決策に乗っかろうかなぁ。。。
395 :
394 :2010/01/30(土) 23:27:05
<報告> 英数字どころか、小文字じゃないとダメみたいです。 AbCdE とかはだめで、 abcde ならOKのようです。
396 :
デフォルトの名無しさん :2010/02/06(土) 23:10:09
死亡回避age
398 :
397 :2010/02/09(火) 21:40:49
あと、もし古いバージョンで試してくださる方がいらっしゃったら 是非結果を教えてください。 よろしくお願い申し上げます。
399 :
397 :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
402 :
397 :2010/02/26(金) 06:35:09
>>397 のバグですが、
Doxygen 1.6.3 で直っていないようです。
バグ報告しないと直らないんですかねぇ。
どこからバグ報告すればいいやら。
Doxygen 1.6.3 で @pageで生成したページのタイトルが付かないバグ は、解決しているようですね。
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に日本語を設定したら反映されます。 何か他に設定する必要があるのでしょうか?
>>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 にしないと正しく動作しないはずなので。
>>405 ソースファイルを確認したところ、
新規に追加したものはSHIFT_JISだったのですが、
もともとあったソースは中国語のソースで、文字コードが"繁体字中国語"というもののようで、
このファイルを解析する時に、SHIFT_JISでないということで、エラーになるようです。
ありがとうございました。
中国語か。 最近ちらほら見かける。
>>408 ほー。そういう着眼点か。
そのdoxygemplateなら、
WindowsビルドしかなくてもLinuxでもWineを使えば普通に動きそうだ。
どげなもんなのか、簡単に解説頼む。
411 :
408 :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 など幾つかのコマンドの追加が出来る。
・編集が終わったら「クリップボード保存」を押すと編集した内容が
クリップボードにコピーされ、編集画面が閉じる。
・テキストエディタで関数宣言の上にクリップボードから作成されたテンプレートを
ペーストする。
こんな感じ。
>>411 なるほど、面白そうじゃん。エディタのマクロと巧く連携できればそこそこシームレスに編集できそうだ。
413 :
409 :2010/03/19(金) 12:18:28
>>411 > タスクトレイもちゃんと使えるの?
俺もそんなにデスクトップLinuxを使い込んでいる訳じゃ無いので、
ごめん、わかんないわ。
タスクトレイに相当するとこも使えそうな気がするけど、
もしダメでもまあLinuxユーザーならソースだけおいとけば
自分でビルドする人が多いだろうしいいんでね?
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 ってなります回避する方法はあるのでしょうか?
415 :
397 :2010/04/13(火) 07:00:23
死亡回避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使ってるよね?
>>418 昨日1.7.0インストールしたばかり(ToT)
421 :
408 :2010/06/27(日) 20:21:31
>>419 レスありがとうございます。
> 個人的にはタスクトレイに常駐するより、
> Alt + tab で切り替えられる方が使いやすい気がしますが、
> どうなんでしょう?
なるほど,それはいいかも知れません。
Linuxは使わないので知らないんですが,Linuxでもアプリケーションの切り替え
はAlt + tabなんですか? 別にそうでなくても問題はないんですが。
実は最初はWIN32 APIを使って指定キー(Ctrl または Shift または Alt)の指定
回数連打でアクティブになるようにしてたんですが,これだとWindows専用に
なってしまうのでやめたんです。でもやはりキーボードで操作できた方が
いいですよね。
他の操作もキーボードでできるようにするなど,まだ改良点がありますし,
Alt + tabでアクティブになったときにクリップボードから関数の宣言部分を
取り出して処理するとなると,全体の構成も考え直さなければならないので,
少し時間が必要だと思いますが,やってみたいと思います。
ありがとうございました。
>>421 「こんなの」がどんなのか判らないから試してみる気にもなれないのだが。
せめて、どんなのか書いてくれ。
だからさぁ、なんでだらだら説明することしかできないの?
あんたこそダラダラ聞いてないで、とっとと使ってみりゃいーじゃん。
売り物じゃないんだから、
>>423 だってそうまで言われて使って欲しいとは思わんだろ。
>>424 機能の全容をまあまあ簡潔に説明されてるのに、それすら読まずにわざわざ文句書くのは引くわ。
頭おかしいやつに関わるなよ。
一番エラーとかなく安定してるのって1.5.5?
>>428 もっと新しいのでもいいんでない? 私のところでは1.5.8で止まっているけど。
俺は毎回新しいのにしてるよ。 これから先 更新されていくにあたり、 あんまり最新から離れていると 一気に対応しなきゃならなくなっちゃってめんどくさいから。
genのHPでバージョン使用アンケートとか実施するべきだよな バージョンあげても劣化することが多いなら、良いベースから作った方がいい イタチごっこになりかねん
いつの間にかスタイルシートが新しくなってるじゃないか
pythonのソースってFilesに表れる? RHEL5に乗ってる 1.4.7を使ってるんだけど現れない。 クラスは現れるんだけど。 最新を野良ビルドしようと思ったけど依存関係は深いなあ。
>>433 公式の使用例だと、pythonの場合は@fileじゃなくて@package使ってるみたいだけど。
>>434 ヒントサンクス。 なるほど、そうするとNamespaceの方に現れますね。
defgroupとかは全然認識してくれないのにそれだけは効きます。
まあ、それでお茶を濁しますか。
436 :
デフォルトの名無しさん :2010/08/18(水) 00:30:27
既存のソースをdoxy化しようとしてるんだけど、全てのヘッダーに長いライセンス事項が 書かれてるので、@fileなんかをそのヘッダ上に追加するとファイルの説明にそれが全て 追加されるのが鬱陶しい。 これを隠す方法は何があるでしょう? とりあえず、 /** @file hoge.c doxygen 用のコメント */ /* 既存のヘッダーはこっちに隔離 */ ってしてるんですけど、もっといい方法があるなら知りたいです。
438 :
435 :2010/08/19(木) 22:05:53
まっ、いいか。 しかしdoxygenいいねえ。 今のプロジェクトでドキュメントの無い、コメントの殆どない ライブラリを使わなくてはならないのだが、ソースを読みながら解析して理解した事はどんどん コメントに書き加えていき、doxygenを通すと立派なドキュメントが出来上がっていく。 ライブラリ内の論理構造からいくつかのグループに分け、中心となるファイルのコメントの中で @defgroupし、関連するファイルは@ingroupでそのグループにまとめる。 @defgroupした コメントの中ではそのグループの中での主要なコンポーネントを解説。 解説の中で引用する ファイル名とかクラス名(HogeClass::)、メンバー名等(HogeClass::hogeMemember)の参照は 全て自動的にリンクになるからそのままソースのナビゲーションが出来る。 最後に@mainpageを作ってこれらのグループ間の関連をメモし、@refでそれぞれのグループに リンクを張って出来上がり。 ソースを読んで自分なりにメモを作ったり、wikiにまとめたりとかは過去にしたけど、これは ソースに完全に統合されているので資産として生きながらえると期待する。
どっかにDoxygenで生成できる旨をコメントしておくことをお勧め。 でないと、Doxygenで生成されたhtmlを編集しようとする馬鹿が出てきかねない。
generated by doxygenってロゴがあるじゃないかー!
graphiz 2.26.3使ってグラフ出力してるんだけど、画像にパスが格納されちゃうんだ 誰かクラス名もしくはファイル名だけ出力出来る方法知らない? doxyのバージョンによるのかな
#ifdefで囲った部分が無視されるんですが、こういう場合はどうしたらいいんでしょう? #ifdef HOGE_VER //! 特定の場合専用の関数 void Hoge(); #endif
DoxyfileでDEFINEできるから、そこでHOGE_VERをDEFINEすれば宜しいかと。
444 :
442 :2010/09/27(月) 03:24:37
ありがとうございます。PREDEFINEてところに書いたらできました。
PREDEFINED = DOXYGEN_SHOULD_SKIP_THIS とすれば #ifndef DOXYGEN_SHOULD_SKIP_THIS Doxygenに無視させたいコード #endif /* DOXYGEN_SHOULD_SKIP_THIS */ こんなふうに使えます。
1.7.2 キタ
447 :
デフォルトの名無しさん :2010/10/30(土) 16:40:01
Graphvizの話ってここでしてもいいすかね。 専用スレが見当たらないんだが
Doxygenで使う限りにおいてはOKじゃね?
まったく絡まないので、あとでスレ立てするわ 昔はGraphvixのスレあったみたいだし、続きってことにする
Graphvixについて答えられる有識者はいるんだろうか。
うむ。寡聞にしてGraphvixなるものは与り知らないな。
vixじゃなくてvizだよ!わざとだよ!ついだよ!
Graphvizって言えば、同じrankにあるnodeの位置関係のヒントって与えられないかな。 doxygenからの出力でも、関数ツリーの上下がある程度同じになってくれると助かるんだけど。 例えば、 main->a->b ->c-^ が ->c-v main->a->b になったりしないように。
>>454 Graphviz(というかdotエンジン)単体なら、group属性を指定しておけばある程度は制御できる。
doxygenからは(事実上)無理。関数ツリーの上下が変わるのって下請け関数の影響が大きいから
レベルを指定して下請けまで展開しないようにするってのも手。まぁ、どうしてもってことなら自作するしかw
456 :
デフォルトの名無しさん :2010/11/19(金) 12:12:25
派生クラスで仮想関数を再定義した場合、派生クラスのメンバー一覧にこの関数が表示されますが、 これを非表示にするにはどうすればいいでしょうか? 数が多く基底クラスで表示してくれれば充分です。
・仮想関数がprivateならDoxyfileでprivateなメンバ関数は出力しない設定にする ・#ifndefで括って、Doxyfileでそのマクロを定義する ・他の出力したい関数にDoxygenコメントが必ずあるなら、Doxygenコメントのない関数は出力しない設定にする
458 :
デフォルトの名無しさん :2010/11/19(金) 13:44:48
3番目の方法で出来ました。ありがとうございました。 HIDE_UNDOC_MEMBERS = YES ドキュメントづけは全部やるのでこれで大丈夫です。
doxygenで内部用と外部用のドキュメントの2種類を作りたいのですがどうのうな形にするのが いいですか。 とりあえず全部ドキュメントを書いておいて外部用の場合は 非公式なクラス、関数を隠したいのですが、どうすればいいのやら。
>>459 >>340 の応用で
PREDEFINED = DOXYGEN_SHOULD_SKIP_THIS
とかにすれば。
これを内部用と外部用のマクロにすればおk!
いや、まず @internal の使用を検討する方が先だろう。
462 :
459 :2010/11/27(土) 12:19:20
>>461 @internal でいけました。
探していたのはこれです。有難うございました。
hosh
明けましておめでとうございます。 hosho
1.7.3 が出ました
バグが2つ取れて新たに1つ入るんだよなこれって。
467 :
デフォルトの名無しさん :2011/01/15(土) 20:33:03
C++で多重継承していた場合、一番最後に指定したクラスのオーバーライド関数しか「〜を実装しています。」が出ないな。 例えば、 class BasicActor : public Actor, public IEventListener { だとActorの方の仮想関数をオーバーライドしても「〜を実装しています」が表示されない。 ActorとIEventListenerの順番を入れ替えると逆の方のクラスの関数の「〜を実装しています」が表示されない。 早く治るといいなあ。
doxygen凄く便利そうだな!だけどRTF出力がうまくいかね…。
一応
>>138 のバイナリとdoxywizard(1.7.3)で試してるんだが、
OUTPUT_LANGUAGE=Japanese
INPUT_ENCODING=CP932
以外に何か設定って必要なのか?
もし良かったらだれかDoxyfileをうpしてくれると凄く助かるわ…。
>>468 OUTPUT_LANGUAGE=Japanese-en
>>469 レスサンクス!
拾ってきたサンプルソースがCP932じゃなかったというどうしようもない原因でしたorz
スレ汚しスマソ
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
@だとドキュメント付けできて、\だとできないのは何故ですか?
>>473 言ってることがよく判らん。普通に@paramでも\paramでもできると思うが。
475 :
デフォルトの名無しさん :2011/06/10(金) 09:31:34.72
>>474 ところが、\paramだとだめで、@paramだとできるんすよ。
何か切り替えるようなオプションがあるのだろうか?
そのダメなファイルと環境とリビジョンについて詳しく。
\\にすればおk
んな馬鹿な
馬鹿っていうほうが馬鹿
復帰
481 :
デフォルトの名無しさん :2011/09/15(木) 21:14:39.34
#define HOGE 123 msg.h の 20 行で定義されています みたいな行番号表示をオフにするにはどうしたらいいの?
1.7.5.1 は日本語 rtf 出力の文字化けが直ったみたいだ。
C++で、ソースを弄りたくない他所のライブラリの基底クラスのpublicなメソッドのリファレンスを 自作の派生クラス側のソースで書く事ってできないもんでしょうか。
>>483 宣言や定義の直前にしかその関数etcの説明を書けないと思っているなら一度doxygenの使い方をちゃんと勉強すると良い。
doxygenのタグのリファレンスを眺めるだけでも全然違うと思う。
485 :
483 :2012/02/21(火) 23:05:35.96
@fn を書いているのに出力されないと思ったら、うっかり他のネームスペース内に書いていた為でした。 お騒がせしました。
486 :
デフォルトの名無しさん :2012/02/26(日) 01:02:49.50
Doxygen 1.8.0 age
x64バイナリも出たんだな
こういう、箇条書きをインデントさせると /*! - 列挙したい場合はこのように先頭に -をつける - 更にインデントをつけたいときはこうする - 更にインデントをつけたいときはこうする */ ・列挙したい場合はこのように先頭に -をつける ・更にインデントをつけたいときはこうする ・更にインデントをつけたいときはこうする こうやってくれるんだけど これを、このように、 ソースにそった形でインデントさせたいんだけど //! - 列挙したい場合はこのように先頭に -をつける if (a == 1) { //! - 更にインデントをつけたいときはこうする } これを普通にやると ・列挙したい場合はこのように先頭に -をつける ・更にインデントをつけたいときはこうする こうなっちゃうんだよね 「単独行で、強制的に2つ以上のインデント」させる、いい方法ないかねぇ というか、そもそも doxygenは、こういうコメントを書くべきじゃないのかな?
やはりテンプレート関連でおかしくなるなあ
490 :
デフォルトの名無しさん :2012/05/21(月) 11:48:57.46
Doxygen 1.8.1 age
「階層まるごとダウンロードツール」使えばええんちゃうのん
C#で表示されるクラス名が全部 <パッケージ名>.<クラス名> になってすごく見づらいんですが、これをクラス名だけにする方法を教えてください 何というオプションなのかそもそも名前がわかりません
HIDE_SCOPE_NAMESでいけた。お騒がせしました
495 :
デフォルトの名無しさん :2012/07/24(火) 20:50:05.56
クラスの階層じゃなくて、依存関係をグラヒカルに見たいんだけど なにを設定すればいいんだっけか
HAVE_DOT 後は適当に。
497 :
デフォルトの名無しさん :2012/10/14(日) 16:05:32.12
気になるけどまだ使っていない。 便利なんだろうか?
使えば判る。是非使え。
499 :
デフォルトの名無しさん :2012/11/17(土) 02:10:59.92
Doxygen 1.8.2 age
doxygenで制作されたライブラリのレファレンスがあるんだけど、オフラインで見たいからダウンロードしたいんだが、なにか方法はないだろうか。 なんかサーバー側の調子が悪いのか、見たい時に中々見れない時とかあって困ってるんだ。 なんかメインページがphpだからなのか、普通のダウンロードツールじゃうまくいかないんだ。
じっさいに見てみないことには何とも言えん URIはよ
doxygenで出力されるのは通常htmlで、phpじゃないよ。 そうでなくても、このスレで聞くのはスレ…いや、鼬害。
\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 >へのリンクを張りたいのですが。
504 :
503 :2012/12/01(土) 19:51:28.94
書き忘れていました。 今は、クラスAのドキュメントから\saでリンクを張っています。 しかし、Related Functionsと同列にできないものか、と思ったのです。 後出しですいません。
505 :
デフォルトの名無しさん :2012/12/02(日) 00:27:49.22
プログラム関係で詳しい奴っている?
506 :
500 :2012/12/05(水) 18:40:16.24
TeXからps経由でpdfにするのは日本語の扱いで結局満足いく出力になったことがないんだよなぁ。 rtfからdoc経由でpdfにするのはMS-Office2010があれば日本語も大丈夫なようだけど。
510 :
デフォルトの名無しさん :2012/12/27(木) 01:20:09.22
Doxygen 1.8.3 age
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 としています。個別でも構いません解決方法ご存知の方はおられませんか。
>>512 INPUT_ENCODING=CP932
の方がいいと思います。
後は、MS WORD で読み込んで全文選択した後フィールド更新
514 :
デフォルトの名無しさん :2013/01/18(金) 09:23:11.01
>>513 早速やってみたら全てきれいに解決しました。
ありがとうございました。
>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
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は結構イメージしたものに近い出力だったのですが
>>518 ソースもcp932にしないと難しいかもね。
それと、word2010にしたら改善するかもしれない。
いずれにしても、日本語は相性悪いよ。
そうそう、JapaneseでダメならJapanese-enも試してみる価値あり。
1.8.3.1で、C言語でグローバル変数を使う時に、 (foo.h) extern int a; (foo.c) int a; って書くと出力にaが2個現れるのですが、仕様でしょうか
@addtogroupでcとhを同じグループに入れた時だけ
>>520 みたいな状態なので、とりあえずexternの部分だけグループから外します
externはグループから外さなきゃいけないか まあそりゃそうだな 失礼しました
doxygenを意識していないソースコードに doxygen用のコメントのテンプレートみたいなのを書き込む機能ってありませんか? 例えば class Hoge { ... }; などとあったら /** * @brief brief of Hoge * * detail of Hoge */ class Hoge { ... }: のようなコメントを挿入するような
>>523 んなもん、Doxygenにあるわけないだろ。
LL言語で作るかエディタのマクロで作るかすればいいだろうが、それはスレ違い。
あぁ、JavaDocスタイルを有効にしておけば、もそっと簡単になるな。
でもそれこそdoygenにパーサがあるわけだから、doxygen内蔵でそういう機能があったらいいなとお思うのは 自然で低コストだべ?
VisualStudio で C++ なら DoxyComment だろうけど。
ありがたい、求めていたものはそれです
>>527 これ便利そうやな
コマンドライン版ある?
>Express Editionでは使えません チクショー!
531 :
デフォルトの名無しさん :2013/10/28(月) 16:59:29.04
細かいのはヘッダファイルに書く派? ソース本体に書く派?
本体と別々にdoxygenコメントを書くことはねーよ。doxygenのいいところが全く無駄になるだろ。 ヘッダファイルに書くのは前方宣言とマクロ定義くらいだから当然ソース本体にしかdoxygenコメントなんざ書かない。
533 :
デフォルトの名無しさん :2013/10/31(木) 15:00:35.36
@parのなかでPREタグ使いたいんだけどうまくいかない AAとか書くときってみんなどうしてるの?
AAとか書かない
>>534 きみの思いとか気持ちを聞いているわけじゃあないんだ。 わかるね?
>>536 ┌─┬─┬─┬─┐
│あ│い│ │お│
└─┴─┴─┴─┘
こういうのとか
@htmlonlyじゃダメなのか?
>>531 俺はヘッダに書くね
実装する時はヘッダから見るし
>>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
\refで参照するようにするとか。
Doxygen使ってるプロジェクトのドキュメントとかを見てみたけど 複数の関数をまとめて表示してるのは全く見つからなかった… \refはグループ化とかしないと行けないっぽいし若干敷居が高い… とりあえずバラでドキュメント化しておくよ どうもでした
最近はC言語もマイナーになったのかぁ....
>>545 C++だけど何か変か?
もちろんサンプル用にその場で書いただけなんだけど
もうちょっと分かり易く書くと 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++なのに第一引き数にオブジェクトの指定が必要だけど、 別に変ではないよ
いや変
変なのは分かったから、ちゃんと具体的に言えないの?
君に使う時間ないし 強烈に変だと思ったからそれだけ伝えたかっただけ
あ、でもFruitsの定義とbool add_apple()の定義を書くというなら、そのコードのどこがおかしいかは指摘できる
スレ違い
逃げたw
まあC++の天才と謳われた俺に書かせれば bool add ( string fruits_type, Fruits* fruits, int_add_num ) かな。 かなりスマートな設計になっているのが分かると思う。
なるほど。
Fruits fruits; fruits.add("apple", 10); とかするのが普通な気もするが。
bool add_apple(Salud* salud, int add_num); // 成功 true 失敗 false も定義しておけば、 Salud salud; Fruits fruits; // Salud と継承関係はない add_apple(salud, 10); add_apple(fruits, 10); と出来るメリットもあるので、一概にどれがいいとは言えない 状況による
まさかそんなあからさまなtypoに対して 「ところで、それ言語なんなの?」なんてドヤ顔でレスするのは想像の範囲外だわ
>>562 こういうのも「嘘を嘘と」の一環じゃねえかと思うんだが
>>561 > これじゃね?
違うよ
> 「ところで、それ言語なんなの?」なんてドヤ顔でレスするのは想像の範囲外だわ
一見C++なんだが、俺の知らない言語の可能性もあるので聞いた
>>560 > 状況による
まあ確かにそうなんだが、俺の見立てではどんな状況でも糞
> Salud salud;
> Fruits fruits; // Salud と継承関係はない
>
> add_apple(salud, 10);
> add_apple(fruits, 10);
も糞だ
設計思想を語りないなら他に行ってくれ。 まぁ、相手にされないからこんなニッチなところで管巻いているんだろうけど。
>>565 別に語りたくないし
変な物を変だと言う自由もないのかこのスレは
まあ、どこの誰かもわからん俺みたいな奴に変だの糞だの言われても、 自分に絶対の自信があれば無視しとけばいいだけの話だよ
まあ、上のコードとか見ると doxygen 使う以前にもっと読みやすいコードを書く練習しろよとは思う。 doxy られても読む気がしなそうだぜ。
まぁとりあえず、4回も5回もどうでもいい書き込みしなくても どう糞なのかを1回書き込んでくれれば、それでいいんだよ
flase対するツッコミだったほうがまだマシだったよーな・・・
とりあえず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;
// 続き 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 :
デフォルトの名無しさん :
2014/06/05(木) 19:26:21.40 ID:EUKZXZmz C++11のfinalキーワードに対応してないからクラス名が変になる 多分overrideにも対応してない