C++
長いんだけど http://d.hatena.ne.jp/janus_wel/20100608/1275989229 の最後で言ってた interface の管理用 class の実装例を書いてみた。長くなったついでに複数の似たような object を管理できるようにもしてみた。以下の code では id という整数値を指定…
http://d.hatena.ne.jp/janus_wel/20100608/1275986820 で一応 user に実装の詳細を見せなくすることができたわけだけど user 側で delete 文を使う必要が出てきてしまったわけだ。というわけでそこらへんを何とかしようというのが目的。でまぁ早速なんだけ…
例えば何らかの domain に特化した class なり function なりを詰め込んだ library ( static / dynamic 問わず ) もしくは obj やら o やらとそれを使うための interface である header file 、というようなものを作るとき、 C++ で素直にやるなら継承を使っ…
boost::regex あたりの正規表現 library をつかえというので FA 。なんだけど自分で書いてみた。 http://github.com/januswel/cpplib/blob/master/header/strcheck.hpp http://github.com/januswel/cpplib/blob/master/sample/strcheck/main.cpp 一応 locale…
Windows Bitmap の header をアレコレするアレ。 24bit に限定。 32bit も扱えるようにしてもいいとは思うんだけどめんどくさい。あんまり見ないし。あと 256 色とか時代的にめんどくさい気がするのでこれだけで問題ない気もする。 http://github.com/janusw…
もう更新する気はないとかいっといて ( http://d.hatena.ne.jp/janus_wel/20100530/1275206953 ) さっそくうそついた感じなんだけどいわゆる sampling data を扱う class を定義して istream_iterator や ostream_iterator で使えてうれしい形にした。 http:…
VS10 で stdint.h が使えるようになってることに今更気付いた。以下の code が compile 通るようになってる。 http://github.com/januswel/cpplib/blob/master/header/elapsed.hpp http://github.com/januswel/cpplib/blob/master/sample/elapsed/main.cpp V…
なんかすごい久しぶりな気がする。というのはおいといて wav file ( RIFF WAV linear PCM ) の header を読み書きする C++ header を書いてみた。 fmt sub-chunk の拡張部分とか考え気すらないので bug とかなければこれで fix 。 http://github.com/januswe…
http://d.hatena.ne.jp/janus_wel/20100522/1274515252 で言ってた file template の分割をやったら Makefile を書かざるを得なくなって書いたら書いたでアレ ? これ copy & rename & replace すれば量産できるんじゃね ? という流れで作ってみた。 http://g…
http://d.hatena.ne.jp/janus_wel/20100508/1273332573 で言ってたアレ、やめた。というのも仕分け対象というよりは援助・施策対象になりそうなところの構成員に「意味のないものを書くな」と direct に諭されたのでコレ使いながらいろいろ書いたり詰めたり…
sequence_container ( http://www.cplusplus.com/reference/stl/ の表参照 ) を出力先とすると下の code が多分素直な書き方。 sequence_container.resize(std::count_if(src.begin(), src.end(), pred)); std::remove_copy_if( src.begin(), src.end(), seq…
code のひな形という意味での template 。 http://github.com/januswel/dotfiles/blob/master/vimfiles/template/-.cpp あーえーとうちは vim でアレコレしてるので filename だとか comment 内のよくわからないアレだとかは以下を参照で。 autotmpl.vim htt…
program を書く上で必要になりそうなものをまとめた header file 。 wmain.cpp のほうは内部の文字列処理をすべて wchar_t および std::wstring でやる場合。 http://github.com/januswel/cpplib/blob/master/header/main.hpp http://github.com/januswel/cp…
処理系の挙動を check するための code 群を cpplib repository につっこむことにした。 library じゃないんだけど形式知だしまぁ似たようなもんと言うことで一緒くたに。 std::bind2nd の check http://github.com/januswel/cpplib/blob/master/impltest/bi…
sequence container を引数に取る関数を定義してしまったのでじゃあこれもという感じで。 http://github.com/januswel/cpplib/blob/master/header/algorithm.hpp http://github.com/januswel/cpplib/commit/ba15e77b2f0706e73cf30dd566b007a4292b1729 http:/…
Visual Studio 2010 で reference な引数に std::bind2nd できるようになったのでうちの cpp library を と を使って書き直してみた。 http://github.com/januswel/cpplib/commit/5222ccf23ba3082b1ce44da90f9e93fa51d80765 http://github.com/januswel/cppl…
Perl や javascript でいうところの join と split を書いてみた。 http://github.com/januswel/cpplib/blob/master/header/typeconv.hpp http://github.com/januswel/cpplib/commit/e04a31543657f5e23c67ea4fbc4326a3ab093805 http://github.com/januswel/c…
いつの間にかでてた -> http://www.microsoft.com/japan/msdn/vstudio/express/ 。とりあえず compiler だけ cmd.exe から使ってるんだけど vs9 で通らなかった以下の code がきちんと通るようになっていてちょっと感動した。 #include <algorithm> #include <functional> #include <iostream></iostream></functional></algorithm>…
最初どうするんだろうと思ったけど C では「関数の pointer 」型を宣言するのに戻り型と引数を指定していたし C++ compiler は signature でどの関数が呼ばれているかを判断しているわけなのでじゃあ signature を構成する引数と ( member function の場合 )…
念のためとかせっかくだからで全然意味が違ってきてしまうことに気付いたのでまとめ。ある class の member ( data member でも member function でもいい ) への pointer を取る場合、その関数の qualified-id ( global 名前空間を起点として名前空間や cla…
ひょんなことから まわりの関数 ( http://www.cplusplus.com/reference/algorithm/ ) を使うようになってあー iterator という interface ですべて操作するわけかなるほどとか思ってたんだけど欲しいものがなかったので書いてみた。 http://github.com/janus…
C++ ぽく自分で書いてみた。 http://github.com/januswel/cpplib/blob/master/header/getopt.hpp http://github.com/januswel/cpplib/blob/master/sample/getopt/main.cpp けっこういい感じにはなったんだけど多分もう 2, 3 回 refactoring しそうな予感。
GoF design pattern で遊んでみよう第二弾 ( 第三弾なんだけど event は observer の変形なので実質 2 つめ ) 。あまり使い出がないと思いきや特定方面には思いっきり需要のある pattern でございます。 http://github.com/januswel/cpplib/blob/master/head…
いわゆる event driven なアレをアレするアレ。 observer pattern ( http://d.hatena.ne.jp/janus_wel/20100329/1269856344 ) の変形版、というほどのものでもなくて各 class や member の名前をそれっぽく変えて状態を保持する class ( observer pattern で…
汎整数型って何を指してんだっけ ? というときに覗く表。 算術型 汎整数型 ( 整数型 ) 符号あり整数型 標準符号あり整数型 signed char short int int long int long long int 拡張符号あり整数型処理系定義 符号なし整数型標準符号なし整数型unsigned char …
GoF design pattern のアレ。 C++ でのわかりやすいまともな実装例が見つからなかったので自分で書いてみた。とりあえず wikipedia:Observer パターン や http://www.objectclub.jp/technicaldoc/pattern/observer を参考に名前はそのまま ( CamelCase な識…
id:faith_and_brave に C++0x の enum は基底型に汎整数型しか指定できないよ、と指摘されたので修正。ちょっと妄想の翼が暴走してしまったようで。ちなみに「はげます」 & 話術士禁止 play とか実はけっこうツライです、であってるかな ?ちょっと enum まわ…
そういや hpp って拡張子は C++ の header file て意味だよなと思って調べてみたら案外そうでもない意見もあってでもおれはせっかくだから C++ header file には hpp を選ぶぜ的なハナシ。既出意見はとりあえずわかりやすいとこで以下のみっつくらい ? 拡張…
Windows で名前に ASCII characters じゃない文字を使っている file を扱う場合、 global locale を system の locale にしてやらないと意図通りの名前にならないというハナシ。 ja_JP.UTF-8 な locale を使っている andLinux だと global locale が C だろ…
http://d.hatena.ne.jp/janus_wel/20100315/1268654296 の C 標準関数版。 // nwconv_c.hpp #ifndef NWCONV_C_HPP #define NWCONV_C_HPP #include <string> #include <vector> #include <cstdlib> #include "../../header/wexcept.hpp" #ifdef _MSC_VER # include <errno.h> #endif namespace u</errno.h></cstdlib></vector></string>…