もちゅるの日常

特に決まっていないざっくばらんなブログ

C++

Visual Studio 2010でsdfとipchの保存場所を変更する

C++

Visual Studioを開く メニューから「ツール」→「オプション」を選択 「テキスト エディター」→「C/C++」→「詳細」→「フォールバック位置」と進む 「常にフォールバック位置を使用」をTrueにする 「フォールバック位置」に適当なフォルダのパスを指定 sdfとip…

正規表現を使用した文字列置換メモ

C++

覚書です。 Visual C++の置換で「.*」を置換後の文字列で、使用する方法。 検索する文字列 _ExeCmd{.*}cmdWriter 置換後の文字列 _ExeCmd\1cmdReader {}で囲って\1でいける。

マルチスレッドとキャッシュとメンバ変数

C++

id:motom552:20101031 上の記事の追記に近い覚書 マルチスレッド開発はメモリを愛する事から始める 常にメモリの事を考えながら開発しないと、すぐにパフォーマンスに影響出る事が分かった。 処理内容 単純に0から1 シングルスレッド まあ書く意味あるのかっ…

関数呼び出し速度測定トーナメント

C++

様々な方法で関数を呼び出し、その速度を競います。 注意点 厳密に平等になるようにはしてないです。 単純にその呼び出しを使う場合を想定したプログラムにしてあります。 自分が使いたい関数呼び出し+αを今回使います。 PCスペッ子 以下の環境で行います。…

マルチスレッドとキャッシュ

C++

キャッシュを意識したプログラム。 どこかのサイトか忘れたけど、記事があったのでプログラム書いてみた。 要はメモリレベルでのスレッド間の独立性を高める。 ソース #include <cstdio> #include <process.h> #include <Windows.h> #include <conio.h> // スレッド #define THREAD_NUM 4 unsigned i</conio.h></windows.h></process.h></cstdio>…

自分用にLua便利ライブラリ作成

C++

生まれて初めてライブラリを外に出してみた。 もともと自分用にライブラリ作ったのでついで。 ライセンスやドキュメントこれでいいのやら・・。RNLua https://sites.google.com/site/mothulelabs/

std::stringを派生

以前の日記で sscanf か何かをstringで出来ないか?と書いた記憶があるけど、今日ちょっと作った。変換指定文字の種類やフィールド幅、精度やフラグなどは全く入っていないけどw std::string str; char buffer[64] = ""; str.assign( "[" ); str.append( it…

freadな罠

そりゃねーべ、エフリード!テキストで開くと失敗する。MSDN兄さんに聞いてみました。 指定のストリームがテキスト モードで開いている場合、キャリッジ リターンとライン フィード (CR-LF: carriage return–linefeed) は単独のライン フィード (LF: linefee…

そろそろやんないと。More Effective C++

C++

結構昔に買ったまま、詰んでた。 Moreじゃないほうは、立ち読みして知っていることばっかだったんで、飛ばしてMore買ったけど 読んでない。でも知らないことはあるはず。 以前C++のぶっとい本を思い切って全部読んだら、それなりに知識がついたから 今回もち…

メモリ確保のアルゴリズム一覧

C++

ファーストフィット もっとも単純なアルゴリズムである。 探索リストの最初から順番に探索し、十分な空き領域を見つけると そこを分割してプロセスに与え、残りを空き領域として記録する。 ファーストフィットはできるだけ検索量を少なくする働きがあるため …

メモリウィンドウを使ったデバッグ法

C++

VCにあるメモリウィンドウですが、使わなくてもプログラムは作れますが、知っていると役に立つかもしれません。 なのでちょっと入門用としてまとめてみました。今回は製作やっていない代わりこっちをやっていました。 とりあえずこいつを見てくれ。どう思う…

sizeofの罠

C++

メモリ領域からサイズ指定で取得してくる場合にsize指定が必要なので、 sizeofを使って取得したらうまくいかず。 調べて見たら、sizeofの罠を見つけた。 RECT rect={0xaa,0xaa,0xff,0xff}; int size1 = sizeof(rect); int size2 = sizeof(RECT); 上記のコー…

メモリリークの検出方法

C++

プログラム開始時に以下のコードを追加 _CrtSetDbgFlag( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF ); ただし、これだけだと実行終了時に出力ウィンドウにリーク検出ログを吐き出してくれますが、 どこでリークしたかは、教えてくれない。 なので、new …

アライメント

C++

通常の業務ソフトや軽いソフトなどは別に気にする必要性はあまりありませんが、CPUを最大限に活かしたいゲームなど、高速処理が売りのソフトなどは気にしながら作成しないと、痛い目を見ます。ですが、VCの場合だと勝手にアライメントを整えてくれている…

要素の型がクラスのfind_ifの使い方

C++

覚書。 宣言箇所 typedef std::vector<WindowConfig*> ConfigType; ConfigType m_configTable; find_ifに渡す関数オブジェクト class WindowNameSearch { const char* m_pTargetName; public: WindowNameSearch( const char* pTargetName ):m_pTargetName(pTargetName){} bo</windowconfig*>…