タグ

ブックマーク / www.02.246.ne.jp/~torutk (6)

  • Automakeでmakeする

    [ C++で開発 ] Automakeでmakeする GNU Automakeを使用すると、簡単な記述でMakefileを生成してくれます。類似ツールにimakeがありますが、imakeは事実上X Window Systemの一部となっており、Xアプリケーション用に調整されているので、非Xな環境やアプリケーション開発に使う際にはやや面倒です。 Automakeの超簡単原理 Automakeは、makeコマンドでビルドするための設定記述ファイルMakefileを、極めて簡単に記述するためのツールです。通常Makefileには、コンパイルする際の諸設定、リンクする際の諸設定、処理順序などを逐一記述しておかなくてはなりません。これは、よっぽどMakefileに慣れていないと苦痛ですし、慣れていても面倒な作業です。そこで、Makefileよりもずっと簡単な設定ファイルMakefile.amだけを記

  • C++標準例外

    [ C++で開発 ] C++標準例外 <exception>をインクルードすることにより、標準例外型を利用できるようになります。標準例外は、STLでも使用されており、これからのC++プログラミングでは例外の標準規範となるでしょう。 標準例外を見てみよう exception および exception派生例外型の継承関係 標準例外のクラス階層は以下のようになっています。 名前空間 std +---------+ |exception| +---------+ △ | +--------------+------------+-----+-----+---------+-------------+ | | | | | | +------+------+ +----+----+ +-----+-----+ +----+---+ +---+----+ +------+------+ |bad_ex

    nharuki
    nharuki 2010/10/13
  • ヘッダファイルの依存を減らす

    [ C++で開発 ] ヘッダファイルの依存を減らす C++では、ヘッダファイルにクラスの実装詳細(非公開のメンバー他)を記述します。このヘッダファイルはクラスの利用者がインクルードして使用します。そのため、クラスの利用法(インタフェース)は全く変更がなくても、クラスを利用しているソースまでコンパイルし直す必要があります。また、クラスが内部的に利用しているライブラリがあったとしても、そのライブラリのヘッダファイルが間接的にクラスの利用者にインクルードされるため、コンパイル時に多大な結合が発生します。 アプリケーションを開発するときに、利用したライブラリが内部で利用している別なライブラリの環境までちゃんと用意しないとえらいことになります。どこかに変更があってもえらいことになります。まったくC++はどこかにちょっとでも変更があれば、すべてのソースを再ビルドせよ、ということに他なりません。 これで

    nharuki
    nharuki 2010/10/01
  • C++で開発

    [ Home on 246net ] C++で開発 好むと好まざるとに関わらず、C++言語を使った開発をすることになったときに調べたことの蓄積。 言語仕様 ブートストラップ main関数 main関数について パッケージ管理 名前空間 名前空間の使用 ヘッダファイル ヘッダファイルとは インクルードガード ヘッダファイルの依存性をなくすには 文法要素 プリプロセッサ 条件コンパイル 可変引数を取る関数(stdargs他) 定義済みマクロ 型 組み込み型 標準定義型(標準typedef等) ビットサイズ固定整数型、 typedefの注意 クラス コンストラクタ メンバー変数 演算子関数 ビットフィールド 継承 例外 標準例外 例外処理のプログラミング テンプレート メンバ関数の特殊化 デバッグ アサーション ANSI Cのassert VC++固有のassert コーディング標準 公知のコー

  • C++例外処理プログラミング

    [ C++で開発 ] 例外処理プログラミング 戻り値によるエラー通知ではなく、より障害に対する耐性を高めるためのシステムとしてC++言語に導入されたのが例外機構です。この例外処理はC++に限らずオブジェクト指向言語の多くに導入されています。 throwとcatchの書き方 3つの方法:ポインタ渡しか値渡しか参照渡しか 関数宣言のthrow:例外仕様 単純なunexpected/terminateの実装 例外の考え方 例外を使用する/しない 例外処理をする/しない スタックフレームを保持する例外 Exceptionクラス TraceExceptionクラス Linuxのbacktraceシステムコール backtraceを用いた例外クラスの実装例 throwとcatchの書き方 3つの方法:ポインタ渡しか値渡しか参照渡しか (節の記述は、書籍「More Effective C++」の§13

    nharuki
    nharuki 2010/06/23
  • エンジニアの技能レベル~ドレイファスモデル~

    エンジニアの技能レベル ~ドレイファスモデル~ 書籍「リファクタリング・ウェットウェア」から 1970年代のドレイファス兄弟による人間の技能の習得・極める過程についての研究結果 研究対象は、民間航空会社のパイロット、チェスの名人などのある分野の技術にきわめて高いレベルの習熟度を示した人々 技能ごとに評価するので、個人の生来持つ特性・才能ではない 5段階でモデル化

  • 1