CPP
CTime クラスと CTimeSpan クラスは、 2038 年以降に対応できません。 それぞれ、 COleDateTime クラスと COleDateTimeSpan クラスに置き換えます。VC++6にはこのクラスがないみたい。 というかVisualStudio6自体が2038年には立ち上がらないそうなので、そも…
GetCommandLine()とか __argc、__argvを使います。ネタ元 http://rararahp.cool.ne.jp/cgi-bin/lng/vc/vclng.cgi?print+200408/04080046.txt
地味に分らなくなるのでメモ。 void Ref(int* (&a)) { a = 0; }
ライブラリの中の関数や、ある一定の行程を踏まないとまともに動作しない関数を使ったテストする時に使えます。SEXYHOOKで始めるテスト とある関数の接合部 既存のソースコードに手を加えず、自由に接合部を作成
#include <time.h> ・・・ time_t current; struct tm *local; time(¤t); /* 現在の時刻を取得 */ local = localtime(¤t); /* 地方時の構造体に変換 */ // yyyymmdd ってイメージの数字を作る long todaynum = (local->tm_year+1900)*10000 + (local->tm</time.h>…
http://www.kijineko.co.jp/tech/superstitions/return-null-if-new-failed.htmltry-catch()で捕まえるのが確実っぽいです。
find()で調べる。 // キーと値が が string と string なマップを生成 map<string, string> itemMap; // マップに値を挿入 itemMap.insert(pair<string, string>("hoge", "ほげ")); itemMap.insert(pair<string, string>("foo", "ふー")); if( itemMap.end() != itemMap.find("foo") ){ // 発見 }else{ // 見</string,></string,></string,>…
#include <fstream> using namespace std; int main( ) { ofstream ofs("data.txt"); string buf; if(ofs) { ofs << "OK" << endl; // cout に書き出すのと同じ感じで } return 0; }ネタ元 http://sato-si.at.webry.info/200711/article_3.html</fstream>
CPUIDというのがキーワードだねCPUID/マルチ種別判定CodeZine - CPUID命令によるプロセッサ環境の判別
MS製CPU情報を取得するサンプルコードhttp://msdn.microsoft.com/ja-jp/library/xs6aek1h(VS.80).aspx
最近のPCなら普通コア2なCPUが載っています。 スレッド分ければ分散されて高速になるんだね。 シングルコアCPUだと逆に遅くなるはず。ネタ元 http://blogs.wankuma.com/episteme/archive/2009/09/18/181390.aspx VC++2008では上記URLにあるサンプルまんまで…
こういうこと map<long,long> tmp_map; tmp_map[0] = 0; if( tmp_map.end() == tmp_map.find(1) ){ printf("OK!"); }else{ printf("そんなばかな!"); }</long,long>
関数内で定義されたクラスをテンプレートのパラメータとすることができないのはC++の仕様なのです。
小数を整数に四捨五入する場合。 #include <math.h> ... double x = 5.5674; // 例 double round_x; round_x=floor(x*100+0.5)/100; ... floor()は 入力値以下の最大の整数値を計算する関数。参考 http://oshiete.nikkeibp.co.jp/qa2207594.html http://www.bohyoh.c</math.h>…
Googleのテストフレームワークが気になったので試してみることにした。あんまり日本語の情報ってないんですね。やっぱりテストは注目度低いのかな。 使ったのはVC++ 2008 Professional Edition。多分Expressでもいけると思うです。 http://code.google.com/p…
いつか役立つかも。ということでメモ http://blog.livedoor.jp/dankogai/archives/51231722.html 上記の元ネタ http://d.hatena.ne.jp/siokoshou/20090704#p1 より詳しい解説 http://d.hatena.ne.jp/siokoshou/20090706
transform で行います。 #include <iostream> #include <cstdlib> #include <algorithm> #include <string> using namespace std; int main (int argc, char **argv) { string s("Hello World"); transform (s.begin (), s.end (), s.begin (), toupper); cout << s << endl; transform (s.begin ()</string></algorithm></cstdlib></iostream>…
int a = 0; int b = 1; if (a == 0 || b == 1) printf("a\n");簡単に言えば、"a == 0" で条件が満たされているのでこっちだけ評価されて、"b == 1"は評価されないよという話。"b == 1"のほうに不具合があったりすると、しばらく隠れていて開発終盤で発覚、と…
tolower() 関数を使います。これはC標準。ネタ元 http://always-pg.com/c/runtime_rd/character/tolower.html 逆はtoupper()関数。ネタ元 http://always-pg.com/c/runtime_rd/character/toupper.html
よくは読んでないけど、いつか必要そうなのでメモ。ネタ元 diff with C++ Software Design 6月号に「diffの動作原理を知る」の記事を執筆しました
一見正体不明のVC++オリジナル定義。よーくみれば違いが分かる。 名前 意味 LP *(ポインタ) C const TSTR TCHAR(char) STR char WSTR WCHAR(ユニコード用:2byte) ゆえに 定義 正体 LPSTR char* LPCSTR const char* LPTSTR TCHAR* LPCTSTR const TCHAR* L…
cppllで流れていたのでメモ。STLFilt:An STL Error Message Decryptor for C++
アサートするときにスタックトレース情報を残して死ぬためのgoogle-glogというライブラリ(?)のお話。組み込み機器だとデバッガつなげない状況はいっぱいあるので このようなスタックトレースをログに残せるようにしておくのは自己防衛としてもいいですね…
引数の値、文字列などからユニークな値を作り出す関数のことを ハッシュ関数。 その関数から出力された値のことをハッシュ値(または単にハッシュ)という。このハッシュ値を使ってテーブルをつくり、連想配列を実現したりする。 http://ja.wikipedia.org/wi…
コンポジションとは、親クラスを継承しないでprivateメンバに取り込んでしまうこと。 継承と違って別物になるので、親の変更の影響を受けなくなる。 親のヘッダファイルを必ずしもincludeしなくてもよくなるので、コンパイルするファイル間の依存性が下がる…
emacsも勉強中なのでついでにmacでなにか作ってみようとおもった。 GUIあったほうが楽しいので、しらべてみるとGTK+を使うといいみたい。GTK+ on OSXダウンロードしてインストール。さてコマンドラインからサンプルコードをコンパイルしようとおもったら、あ…
本当に詳しい内容はググるとして・・・。 virtualは、継承(オーバーライド)していいよという意志の現れ。 逆にvirtualがなければ、断固継承(オーバーライド)させない!という意志の現れ。 という感じか。以下 VC++で動かしながらメモ 親でvirtual付けた…
親のデフォルトコンストラクタから -> 子のコンストラクタ普段意識しなくてもいいようなクラスばかり設計してると忘れちゃいますね。
何でもできるゴッドクラス。 巨大で複雑なソフトウェアを作るには非効率ですね。この世界、宇宙、世の中も非常に複雑。 だからかみさまの力はいろんなオブジェクトに委譲されているんだな。だからこの世のモノは全部かみさまの一部なんだよーなんてことを思…
Cの場合 静的関数と呼ばれファイル内のみ有効で、定義されているファイル外では利用できなくなります。 C++の場合(クラスのメンバ関数で使用する場合) クラスの外部から静的メンバ関数を呼び出すには、「クラス名+"::"+静的メンバ関数名」という形式で呼び…