タグ

関連タグで絞り込む (2)

タグの絞り込みを解除

c++とgccに関するmoozのブックマーク (5)

  • std::string の正体(gcc-4.4.3)と細かい話 - やた@はてな日記

    # 環境依存な内容な上,無駄に細かい話なので,「そういうこともあるかもねー」くらいに流しちゃってください. (追記 2011-01-11)新しい規格では std::string の Copy on Write(CoW: 書き込み時に複製)が実質禁止になるとのことです.後,gcc 4.5 の時点で CoW はやめてしまうみたいですし,「そんな時代もあった」くらいに軽く流しちゃってください.id:gintenlabo さん,コメントありがとうございます. (追記の続き)個人的には,std::string の CoW 動作は挙動が分かりにくくなるので止める方に賛成です.でも,std::vector なんかを拡張するときはどうするのかな…?コピーしてしまうのか,swap() を使うようにするのか…. (さらに追記 2011-01-11)おおっと,ムーブコンストラクタにムーブ代入演算子なんてものが…

    std::string の正体(gcc-4.4.3)と細かい話 - やた@はてな日記
    mooz
    mooz 2011/06/11
    g++ では std::string の正体がポインタだった
  • Pre-defined Compiler Macros

    mooz
    mooz 2011/05/13
    各コンパイラの #define するマクロ一覧
  • Precompiled header - Wikipedia

    mooz
    mooz 2011/03/05
    .phc, .gch
  • でっつ :: Entries :: お母さんみたいにもっと3ヶ月前に教えて欲しい

    お母さんみたいにもっと3ヶ月前に教えて欲しい Posted by admin on the 28th of 3 月, 2008 at 12:00 am under 未分類.    This post has no comments. ccacheを使えば、C++のコードのコンパイルが死ぬほど遅くても大丈夫という情報が。これはheaderファイルなど頻繁には変更しないような部分のコンパイル結果を自動的にキャッシュしてくれるソフトウエアだ。よっぽどのことがないかぎり、一人で開発しているコードでは、includeする色々なheaderファイルのほうが、自分で入力するソースコードより多い。しかも、template programmingを使いまくるBoost Spiritのようなinculdeするheaderが大きくて、構文解析の処理量が多いライブラリを利用していると、明らかにheaderのせいで

    mooz
    mooz 2010/09/09
    ccache. ヘッダファイルなど, 頻繁に変更されない部分のコンパイル結果を自動的にキャッシュしてくれるソフト.
  • memologue - __attribute__((init_priority(N))) で、C++のグローバル変数の初期化順序を制御する

    g++の __attribute__)((init_priority(N)))( なる機能の日語の解説が見当たらないので、いつものように紹介文を書いてみます。これは、C++のグローバル変数の初期化順序を制御するためのGCCの拡張機能(attribute)です。 ごく短い説明 動的な初期化が必要なC++のグローバル変数の定義に__attribute__)((init_priority(N)))(をくっつけると、.oファイル上で、その変数の初期化関数(コンストラクタ等)のアドレスが.ctorsではなく.ctors.M セクションに入ります。M は左0パディング5桁固定の数値で、M = 65535 - N です。あとは、shinhさんの2005/11の記事を。特に、リンカスクリプトのSORTのとこに注目、これにより初期化順がinit_priorityで指定した通りになります。Nが小さい程先に初

    memologue - __attribute__((init_priority(N))) で、C++のグローバル変数の初期化順序を制御する
    mooz
    mooz 2010/07/19
    コンストラクタの走る順番. リンカ, .ctors セクション, __attribute__((init_priority(N))).
  • 1