タグ

c++に関するTarouのブックマーク (16)

  • Cppcheck - A tool for static C/C++ code analysis

    Packages Cppcheck can also be installed from various package managers; however, you might get an outdated version then. Debian: sudo apt-get install cppcheck Fedora: sudo yum install cppcheck Mac: brew install cppcheck Features Unique code analysis that detect various kinds of bugs in your code. Both command line interface and graphical user interface are available. Cppcheck has a strong focus on

  • レッツ! Windows 7 - ランタイムライブラリ編

    稿は「レッツ! Windows 7」と題して、Windows 7の便利な機能を中心に、初心者が判断に悩む設定や、気付きにくい場所に設けられた設定を解説していきます。Windows 7から初めてコンピューターに触る方はもちろん、Windows XP/Vistaからアップグレードした方も是非ご覧ください。また、読者からの質問をお待ちしておりますので、稿末尾にあるリンクから投稿をお願い致します。今回は様々なアプリケーションやツールを実行する際に必要なランタイムライブラリの導入に関して解説しましょう。 レッツ! Windows 7 - デスクトップ編(1) レッツ! Windows 7 - デスクトップ編(2) レッツ! Windows 7 - デスクトップ編(3) レッツ! Windows 7 - 電源管理編(1) レッツ! Windows 7 - 電源管理編(2) レッツ! Windows

    レッツ! Windows 7 - ランタイムライブラリ編
  • VS2010 C++ ランタイムライブラリ

    そう、C++でプログラムを作成した際には、多くの場合、再頒布用のランタイムライブラリを プログラムと一緒に配置します。 例) msvcr90.dll、mfc90.dll など VS2005 C++、VS2008 C++ でのランタイムライブラリは、side-by-side という仕組みになった ライブラリを使用していました。これらは、 Windows\winsxs というフォルダー下にながーい名前のサブフォルダーを作って配置します。ただし、配置するためには マージモジュール(拡張子 msm)のファイルでインストールする必要があります。 VS2010 C++ ですが、また同じ side-by-side なんだろうなと思っていたら、何と、side-by-side では なくなっていました。えっ!?では、どこに? side-by-side ではなくなり、また、side-by-side 以前の配置

    VS2010 C++ ランタイムライブラリ
  • C++でテスト駆動開発

    2. 自己紹介  HN: 秋Twitter: @akineko  Blog: http://d.hatena.ne.jp/Akineko/ 絶賛更新停滞中!  職歴: ホテル→Webデザインゲームプログラマ  Aimingという会社でオンラインゲームの サーバープログラマやってます  C++とかアジャイル開発が好きです

    C++でテスト駆動開発
    Tarou
    Tarou 2012/02/13
  • Google C++スタイルガイド 日本語訳

    Text Drop 翻訳、プログラミング、写真、カメラなどについて書いてます。スタイルガイド/コーディング規約やチートシートなど、ちょっと便利なものを翻訳しています。 TEXTdropでは、C++プログラマーも利用できるパワフルな機能を搭載。C++のコードを書く際に行う手順や避けておきたい工程などを詳しく説明しています。コードスタイルラインの日語版では、日語訳やJ P Yへの換金もサポート。話題性があるオンラインカジノ 日円変換や入金の際のバグにも対応しています。統一性のあるコードを書くためのポイントや規約の種類を参考にする事ができます。

  • C++ における const の重要性と活用 - ニートの世紀

    const なんて知らないよ、という層の人間が一定世の中には存在するようです。 そういった人間の大多数の主張は恐らく「面倒くさい」「嫌い」とかだと思うのですが、const 性に気を配るのは C++ においてはメンバ変数を private にしないといけないことと同程度にやらないといけないことです。という話をします。 const というとまず真っ先に出てくるのは「値が変わらないことでコードが読みやすくなる」とか「参照透明性のため」とかで、参照透明とか言葉がすごく綺麗ですごいって感じだと思います。ボクは参照透明という言葉がすごく好きです。 でも C++ は現実の言語なので現実を見ましょう。そんなのどうだっていいんです。 前提として C++ はそれなりに速い何かを作るための言語である、ソースコードはコメントや何らかの形のドキュメントに勝る、という二点をあげておきます。 例えば巨大なオブジェク

  • C++のmapについてのめも - ichirin2501's diary

    速度向上を考える上で、mapの使い方で差が出たのでめも。 mapは[ ]演算子がオーバーロードされているので、演算子の書き方を多用していた。演算子で書くと存在しないkeyを指定した場合、自動で生成してくれる。これが便利なときもあれば不便なときもある。 例えば、メモ化探索にmapを利用していた場合、既に探索した状態かどうかを調べるときに[]演算子で勝手に状態生成してもらっては困る。 なので、今まではこんな感じで書いてた。 map<int,int> mii; int dfs(int S){ if( mii.count(S) ){ return mii[S]; } int ret = 0; /* 処理 */ return mii[S] = ret; } countメソッドはkeyがあるかどうか(0or1)を返す。勝手に状態数は増えない。 でも、どう考えても 探索3回してるよねこれ mapの[]演

    C++のmapについてのめも - ichirin2501's diary
  • C++クラスの書き方が面倒くさい訳 - すたんだーどっ☆あいおーっ!

    Cが全然分からないころの話。 javaのように1クラス1ファイルに書かないのはなんで? メンバがポインタばっかりなのはなんで? という疑問を持ちながらコーディングしてるともやもやして嫌でした。 もやもやがいやなのでjava風に書いていたら当然のように詰まりました。 ポインタじゃなかったらメモリが大変なことになるだろうが! というのは最もなんですけど、じゃ小さいプログラムならありなのか?スマートポインタ使えばいいのか?と言うとそうでもない。 今日書いてみたいのは、クラスは相互参照がめんどくせぇから分割しろ。そして同じ理由でメンバ変数はポインタにしとこうぜ、というお話。 相互参照の解決 AクラスがBクラスを使って、BクラスがAクラスを使う。 こういう状態を相互参照とか相互includeとか言うと思う。 javaは何でもないことだけど、C++はこれを簡単には許してくれない。 相互参照の解決方法に

    C++クラスの書き方が面倒くさい訳 - すたんだーどっ☆あいおーっ!
    Tarou
    Tarou 2011/03/11
    前方宣言
  • C++コミュニティーの中心でC++をDISる

    Boost.勉強会4にて発表した内容です。http://atnd.org/events/11551Read less

    C++コミュニティーの中心でC++をDISる
  • 紫ログ:C++のテストフレームワークを試食 - livedoor Blog(ブログ)

    TopCoderの為に少しやる気になってきたところで、Macでフリーで使える C++ のテストフレームワークをいくつか試してみたのでメモ。 CppUnit - C++ Port of JUnit CxxTest googletest - Google C++ Testing Framework Boost.Test CppUnitはテストの記述が若干面倒な気が。表示はシンプルで悪くない。 CxxTestはインストール方法が他と違って少し悩んだが、記述量が少なくて取っつきやすかった。 googletestは記述量が少なめで、赤と緑のカラー表示コンソールで、マクロの種類も豊富。ASSERT マクロと EXPECT マクロの対応も分かりやすい。但し、出たばかりで日語での情報が少ない。 Boost.Testは普段Boostに慣れ親しんでいるなら良いかも。マクロの種類は多め。 とりあえず、goog

  • EffectiveC++入門

    C++プログラマにとって、『Effective C++』はバイブルのような存在です。どれくらいバイブルかというと、皆さんの使っているGNUのGCCコンパイラには、EffectiveC++のコーディングガイドラインに従っているかどうかチェックするためのコンパイラオプション『-Weffc++』が、あるくらいです。 しかし、その内容は決して初心者向きではなく、実際に買ったはいいが、書棚の肥やしになっているような人たちも多いと思います。そこで、そのような初心者の人たちに EffectiveC++ を読み解くために各章のエッセンスをまとめたガイドラインを書いてみました。 C++はもう時代遅れとよく言われますが、組み込み系からビジネスシステムまで、幅広くカバーできる言語は、C++以外にありません。C++を知っていれば、おそらくどのような業界にも通用するでしょう。ITプログラマを自負するのであれば、C+

  • C++の新しいキャスト

    C++の新しいキャスト 従来のキャストの問題点 異なる型への変換において、C/C++ではキャストが用いられます。 // intからlongへのキャスト int ival; int lval = (long)ival; ご存知のとおり、キャストは非常に危険です。 来ならば型の不一致によるコンパイルエラーをねじ伏せるのですから。 キャストの使われ方(意味)は、大きく3種(型変換/型変更/const外し)に分類されます。 型変換 // int から double へ int ival; double dval = (double)ival; 型変更 // long から int* へ long lval; int* iptr = (int*)lval; const外し // const int* から int* へ const int* ciptr; int* iptr = (int*)cip

  • Codian - ポインタと文字列とCStringと

    更新日: 2007/11/19 動作確認環境:Windows XP Professional SP2, Visual C++ 6.0 Professional SP6 サンプルプロジェクト(Visual C++ 6.0): MxA09_VC6.zip サンプルプロジェクト(Visual C++ 6.0用、サンプルプログラム13のみ): MxA09_Unicode_VC6.zip 最後は文字列についてです。 MFCにはとても便利なCStringクラスがありますが、それをどう使えばいいのか、やや遠回り気味に説明したいと思います。 ちなみに文字列やポインタについては、Codianの「ポインタ」でも解説していますのでそちらもどうぞ。 C/C++言語の文字列型 なんてものは存在しません!! Visual Basic他、多くの言語は簡単に文字列を操作できる「文字列型」を持っていますが、C/C++言語に

  • C/C++セキュアコーディング入門一覧

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    C/C++セキュアコーディング入門一覧
  • C/C++ 迷信集 | 株式会社きじねこ

    C/C++ を使うプログラマは大勢います。しかし、その多くは OJT を通して言語を学んだのではないでしょうか? 実はそこに大きな落とし穴があります。 コンピュータや工学のことをよく知らない人たちは、時代の先端を歩むプログラマには「迷信」など無関係だと信じて疑わないかも知れません。しかし、迷信や誤解はどんな世界にも常に存在しています。 というわけで、ここでは C/C++ にまつわる迷信、誤解、よくある間違いを採り上げていきます。非常に後ろ向きな企画ですが、暇つぶし気分転換に読んでみてください。もしかすると、ご自身が迷信にとらわれていたことに気付くかもしれません。 追記(2009/03/15) このコーナーでは、C/C++ にまつわる迷信、誤解、よくある間違いを扱っています。決して「迷信」だけではないのですが、タイトルにはすべて[迷信]を付けています。 これは、主に検索エンジンでタイトルを見

  • namespace

    About 標準C++ namespaceについて 以前ネット上で検索して見つからず、途方に暮れたのがこのnamespace(名前空間)だ。 2007/10/09 "using namespace seal::foo;"と書いていたのを"using seal::foo;"に修正。(Thanks to デフォルトの名無しさん) 名前空間とは 従来のC、及び標準化以前のC++の識別名はプログラムを構成する全要素中で一意である必要がある。例えば、stdio.hをインクルードすると、独自にFILEという型を作ることはできない。名前が衝突するため、コンパイルエラーとなるからだ。 標準ライブラリの型名や関数名は誰もが知ってるから、衝突が起こることはまずないが、違うベンダが開発したライブラリを組み合わせて使ったりすると、名前の衝突が起きる可能性がある。 そこでC++に導入されたのが名前空間である。名前空

    Tarou
    Tarou 2009/06/12
    名前空間、::
  • 1