タグ

c++に関するreplicationのブックマーク (79)

  • Doxygen+GraphvizをVisual C++で使ってみる |

    まず、普通にDoxygenを使ってみる。 Doxygenと以下のファイルをダウンロードする。 Doxygen http://www.doxygen.org/ Microsoft HTML Help Downloads http://msdn.microsoft.com/library/en-us/htmlhelp/html/hwMicrosoftHTMLHelpDownloads.asp 1. Doxygenを起動して、タブ「Expert」からBuildを選択。 EXTRACT_ALLにチェック。 デフォルトでは、LaTex形式の文書も生成してくれるが要らない場合は、LaTexの項目から、GENERATE_LATEXにチェックを入れて、はずしておく。 2. メニューから、File->Save Asを選択して、Doxyfileを保存する。保存先は、Visual Studioのソースコードがあ

  • Post by @momijiame · 3 images

    大きいプロジェクトだとクラスとかメソッドがいっぱいあって、それぞれ呼び出し合ったりして、もー意味わかんない。構造を視覚的に追えると良いんだけど、クラス図とかコールグラフを手作業で作ってると埒があかない。 ということで、自動でドキュメント + クラス図やコールグラフを作ってくれるツール Doxygen と Graphviz がとっても便利だったのでメモっておく。 とりあえず説明する上での環境は Mac OS X 10.7 + Homebrew ということで。Doxygen と Graphviz 自体は、UNIX 系の OS ならどれでも動かせるんだと思う。

    Post by @momijiame · 3 images
  • C++ のテストフレームワークを選ぶポイント - Cube Lilac

    Boost.勉強会 #8 大阪 に参加してきました。発表者、運営者の皆様お疲れ様でした。今回もいろいろと黒魔術的な発表があり「これが変態かー」と感慨深く見ていたのですが、それはそれとして、個人的に気になっていたテーマとして「C++ でのテスト」に関連する発表が 2 件ほどあったので、楽しみにしていました。 C++でテスト駆動開発 - @akineko Boost.Testの紹介 - @hotwatermorning C++ のテストフレームワークも数多く公開されており、好みや用途によって選択肢が変わって来るのですが、まぁ今だと選択肢として挙がるのは「Boost.Test か googletest か」になってくるのかなと思います。どちら(もしくは、上記以外を含めたどれか)を選択すべきか、と言う問いに対しては、残念ながら現状でも決め手となるものに欠けているのですが、自分が利用する上で選択する

    C++ のテストフレームワークを選ぶポイント - Cube Lilac
  • マルチバイト文字列とワイド文字列 - mkubara.com

    概要 VisualStudio2005になって、今まで書いていた文字列処理関係のコードに対してコンパイルエラーや警告が表示されるようになった方も多いと思います。VisualStudio2005では使用する文字コードが変更となり、従来のマルチバイト文字列(日ではShift-JIS)から、世界標準のワイド文字列(Unicode, UTF-16)へ移ったためです。 このように文字コードはプログラムにおいて重要な位置を占めるものですが、その実態や移行の手法は意外と情報の少ないものでした。今回はこの辺りを記述します。 マルチバイト文字列とワイド文字列 char型とwchar_t型 日Windows上で現在我々の利用する文字コードであるShift-JISは、主に英字を1バイト、日語文字を2バイトで表現するため、マルチバイト文字列と呼ばれます。マルチバイト文字列は1文字が何バイトかを文字ごとに計

  • ウォッチ変数の書式指定文字

    このブラウザーはサポートされなくなりました。 Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。

    ウォッチ変数の書式指定文字
  • Software Metrics Investigation

    CCCC - C and C++ Code Counter A free software tool for measurement of source code related metrics by Tim Littlefair The CCCC tool was developed as a testing ground for a number of ideas related to software metrics in an MSc project.  The research project is described at http://www.chs.ecu.edu.au/~tlittlef My research project is now (hopefully) coming to an end. The descriptive page will remain on

  • Andante/tips

    Home / tips Tips集 目次 C/C++ コメントスイッチ VC++のforスコープ抜け対策 多次元配列の動的確保 関数ネスト(C++) C/C++ コメントスイッチ 一時的なテストコードを瞬時に切り替えたいなんて時はこれ↓ /** { int tmp = a; a = b; b = tmp; } /*/ a ^= b ^= a ^= b; /**/ 切り替えるには、最初の /** に / を足してやればOK。 /**/ { int tmp = a; a = b; b = tmp; } /*/ a ^= b ^= a ^= b; /**/ #if ~ #else ~ #endif で切り替えると色が変わらない (VC++2005 ではプリプロセッサの色分けしてくれますが、更新が遅い) からどっちが実行されるコードなのかひと目では分かりにくいので、 コメントにしてやればもう一目瞭

    replication
    replication 2012/08/24
    VC++のforスコープ抜け対策
  • ccccを使って、C/C++のメトリクス集計を行い、CSV化する - ふにゃるんv2

    前回のCCFinderのネタからこっち、id:Seasons さんから頂いたコメントを読み返しつつ、プログラムの「評価基準」って何だろね?と時折ぐーぐるしてました。 …そ〜いえば、オープンソース系で評価ツールって、何かあったっけなぁ?と思いつつ、適当に ぐーぐるしていたんですが、この手のソフトは Javaが圧倒的にヒットしますねぇ。まぁ、.NET系に比べて年数も違うし、マクロやテンプレートなんていう一歩間違えるとダークサイドなものもありませんからね。 そんな中、ccccっていう冗談みたいなソフトを見つけました。 SourceForge.net: C and C++ Code Counter http://sourceforge.net/projects/cccc UNIXの部屋 検索:cccc (*BSD/Linux/Solaris) http://x68000.q-e-d.net/~68

    ccccを使って、C/C++のメトリクス集計を行い、CSV化する - ふにゃるんv2
  • Visual C++でアラインメントを扱う3つの機能、#pragma pack, __declspec(align(#)), __alignof演算子についてのメモ 【▲→川俣晶の縁側→ソフトウェア→技術雑記】

    構造体などのアラインメントは、16bit用ソースを32bitで使う場合に問題になる場合があります。おそらく、同様に32bit→64bitのケースでも問題になるケースがあると思われるので、今からメモっておく価値がある? サンプルソースはVisual Studio.NET 2003のWin32コンソールアプリケーション用で、プリコンパイルヘッダー関係は割愛しています。解説はWindowsの32bit環境であることを前提としています。 #pragma packの使用例 § ソースコードの途中でアラインメントを変更します。 それだけでなく、pushとpopの機能を使うと、一時的に変更したものを戻すことができます。 コマンドラインオプションでも変更できますが、それによってソースコードの途中で切り替えることはできません。 サンプルソースを以下に示します。 アラインメントを変更した構造体と、変更しない構

  • 構造体がアライメントによってパディングされてしまうのを防ぐ - 元気よく。

    掲題の件、gcc 使ってた頃には __attribute__((packed)) とかで対処していたのですが、VC++だとどうするのかわかりませんでした。 どうやら、#pragma pack なるものを使うみたい。 #pragma pack(push, 1) // アライメント1に設定 // この間に構造体の定義とか書く typedef struct hoge { char foo; int bar; } hoge_t; #pragma pack(pop)

    構造体がアライメントによってパディングされてしまうのを防ぐ - 元気よく。
  • cppcheck

    Static analysis of C/C++ code. Checks for: memory leaks, mismatching allocation-deallocation, buffer overrun, and many more. The goal is 0% false positives. See http://cppcheck.sourceforge.net for more information.

  • TCHARとかLPCTSTR、LPTSTRって何???(UsefullCode.net)

    UsefullCode.net Visual Studio 2005/2008/2010やandroid SDK/NDKでの開発者向けに便利なソースコードを提供 This site provide you with useful source codes under 'USEFULLCODE license'. Windowsプログラミングからは切っても切り離せないのが、TCHARと、LPCTSTR、LPTSTRなどのTCHAR系列の型。結論から書くとこれはソースコードをユニコードと非ユニコード両対応にするための型だ(何のことだかサッパリ分からないって?こういうプログラミングの授業じゃ習わない意味不明な拡張が多いからWindowsプログラミングはややこしいんですよね)。 何も考えずに ・TCHAR = char ・LPCTSTR = const char* ・LPTSTR = char*

  • CppCheck « ツール工房 覚書

    replication
    replication 2012/04/03
    CppCheckでフォルダを除外する
  • cppcheck 日本語マニュアル | 一人ぼっちの共鳴

    一定期間更新がないため広告を表示しています

    cppcheck 日本語マニュアル | 一人ぼっちの共鳴
    replication
    replication 2012/04/01
    マニュアルが英語しかなかったから翻訳しといたよ。
  • プログラミング : cppcheck (C++ 静的解析チェックツール) のWindows対応

    オープンソースで、C++ のメモリリークやバッファオーバランをチェックしてくれる cppcheck 。 Windows用のインストーラも用意されて、GUIフロントエンドも日語メニューになっているが、 実は、Windows環境では日語が正しく扱えない。(Ver 1.48時点で) ① 日語のパス(ファイル名)が正しく扱えない。 ② ソースコード内の日語(文字、文字列)が正しく扱えない。 残念ながらSJISコードを想定していないので、0x5C('¥')を含む漢字があるとアウトとなる。 日語のファイル名なんて使うかよ!と言われそうだが、フォルダ名のが日語になっていることはあり、 特に、”ソース” の”ソ”がアウトの文字なので、結構該当したりする。 ということで、cppcheck のSJIS対応を行ってみた。 ただし、②は時間がかかりそうなので①のみ。 (②に対しては、しばらくは文字

  • STLも解析してくれる静的解析ツールcppcheckを試す、と思ったら…… - 神様なんて信じない僕らのために

    静的解析ツールって商用のものだと結構あるわけですが、 まぁ、基的にこんなツールは有用性を示してもぽんぽん買ってもらえる訳もないので オープンソースに依存するわけです。 で、C++ならSourceForge.net: cppcheck かなあと思ってプロジェクトにかけてみたりするわけです。 静的解析ツールに求めるところは 「ノイズは少なく、でも怪しいところはちゃんと教えてね」 ということで、ずらーっと大量にerrorやwarningがでてもうんざりするわけです。 逆にあまりにも出さないと意味がないわけで。 ここが難しいところではありますが、 はてさて、まぁ、気休めだなあと思ってかけてました。 自分がこれがいいなと思ったのはSTLをちゃんと見てくれるよっていうところで、 std::vector<int> vv; for (std::vector<int>::iterator it = vv.

    STLも解析してくれる静的解析ツールcppcheckを試す、と思ったら…… - 神様なんて信じない僕らのために
  • Cppcheck(C++ソースの静的解析ツール) - 閑古鳥

    SourceForge.net: cppcheck Hudsonのプラグインを漁っているときに見つけた、C++のソースコードを静的に解析してくれるオープンソースのツール。面白そうなので試してみました。 インストール githubにソースが公開されているので、git cloneなりgithub上のアーカイブをダウンロードするなりしてソースを落としてビルドします。Windowsの場合VS2008のソリューションファイルが付いているので、VCBuildなりdevenv.exeなりで簡単にビルドすることができます。 使ってみる VCでビルドするとcli/フォルダの下にdebugもしくはreleaseフォルダができて、その下にcppcheck.exeが作成されます。実行ファイルができたらとりあえず引数無しで実行すると使い方が出てきます。 -a オプションで警告を全部表示(省略するとファイル毎に最初の

    Cppcheck(C++ソースの静的解析ツール) - 閑古鳥
    replication
    replication 2012/03/31
    -a オプションで警告を全部表示(省略するとファイル毎に最初の一つだけ表示される) -q オプションで警告以外のメッセージを省略(省略するといろいろな情報も一緒に表示される)
  • Cppcheck を使ってみた

    正しくは、「使ってみてたんだけど最近ようやく使えるようになった」です。 Cppcheck 1.53 にしてから、ずーと悩んでいたことが解決しちゃいました。 excluding 指定がうまくいかなくて悩んでいたのですが、 バージョンが上がったのを機に再チャレンジしたら、あっけなくできちゃいました。 前はダメで今回できたのはなぜだろうと調べてみたところ、こんな記事を見つけました。 CppCheckでフォルダを除外する 末尾に区切り文字が必要だったのですね。。。 とにかく、一歩前進できたのでブログにまとめておこうと思います。 ※この記事では、Cppcheck 1.53 + Windows7 を想定しています。 基的な使い方詳しいことは、マニュアル見ましょう。 ですが、まずは簡単に解析をしてみたいと思います。 1つのファイルを解析 cppcheck --enable=all main.cpp フ

    Cppcheck を使ってみた
    replication
    replication 2012/03/31
    この時点で、期待する結果が得られない場合 --force オプションを使用してみてください。 デフォルトでは --max-configs が 12 となっているため、#ifdef などを多用していると目的のコードに達する前に解析が終わってしまいます
  • Cppcheck + Visual Studio

    Cppcheck + Visual Studio で検索されているようなので、小ネタを。 てか、前の記事で書くのを忘れてました。 外部ツールVisual Studio の外部ツールに Cppcheck を登録します。 [ツール(T)] -> [外部ツール(E)...] をクリック。 外部ツールのダイアログが開くので、そこで追加ボタンを押します。 タイトルは適当に「Cppcheck」とでもしておきましょう。 コマンドに「cppcheck.exe」(パスは通しておいてください。) 引数は「--enable=all --template vs $(ItemPath)」とします。 --template vs としておくと、 Visual Studio ライクな出力フォーマットになります。 出力ウィンドウのログからエラーのソース行にジャンプできるので、必須だと思います。 その他の引数はお好みで変えて

  • cpp-tools - Cソース中の大量のifdefを読みやすくしたい(ツール探索編) - spikelet days

    目的 #ifdefが複雑にネストしているCソースファイル中で、どの部分が有効かを簡単に調べたい。 背景と動機については id:taiyo:20080202#p1 などを参照。 結果 C FAQ(Question 10.18)で紹介されている3つのツールと、手元にあったツール1つを試した。 名前 処理可能なディレクティブ 処理方法 感想 rmifdef #ifdef, #ifndef, #else 不明(バイナリ配布) 判定対象が狭く、あまり使い出がない unifdef #ifdef, #ifndef, #else 独自の文字列処理 出力エラーでソースが乱れるのが致命的 scpp 全ディレクティブ lex&yac マクロ展開までされるのと、#if 0を処理しないのがやっかい pcpp 全ディレクティブ 不明(バイナリしか持ってない) 不都合は今のところみつからず pcppが、機能面では不満が

    cpp-tools - Cソース中の大量のifdefを読みやすくしたい(ツール探索編) - spikelet days