2005-01-01から1年間の記事一覧

タマ姉たまんねぇ

タマ姉たまんねぇ. #年の瀬も年の瀬に,約1ヶ月の沈黙を満を持して破る更新の内容がこれか?これなのか?

値セマンティクスの型消去

C++

ところで, Type Erasure で思い出したけれど http://d.hatena.ne.jp/Cryolite/20051003#p1 の2番目について「こちらは参照・ポインタセマンティクスを持つ.値のセマンティクスは持てない.」って書いたけれど,これは若干間違いで,コンストラクタで new …

Double dispatch in C++

C++

今日,起きてベッドの上でぼけ〜っとしてたら思いついたけれど, Type Erasure にちょこっと hack を加えれば, double dispatch ができるんじゃないかと思いついた.けれど忙しくて実験・実演するヒマがないっ!! というか, Type Erasure によるインタフ…

split -> split -> split

ぎゃー!split って不変化の動詞だった…….過去・過去分詞が splitted だと思い込んでいた.テラ恥ずかしス…….

Boost.Foreach + Boost.Range + Boost.StringAlgorithms

Range というものが,ただのコンテナの拡張ではなく,いかに「うはーゆめがひろがりんぐ」なものであるか. がリリースに入っていないので, CVS HEAD からコピペ.要 Boost 1.33.0.

クラスの静的メンバをヘッダのみで定義してしまう

C++

っていうか上のヤツ書いてて気が付いたけれど,簡単なクラスで静的メンバが1つ2つぽつんとあるような場合,今まではその静的メンバの定義のためだけにわざわざヘッダと実装を分けないといけなくてうっとうしいなあと思っていたけれど,上のを応用すると,テ…

クラステンプレートの静的メンバの初期化は異なる翻訳単位で複数回可能だよ

C++

http://d.hatena.ne.jp/Cryolite/20051003#p1 の2番目の手法とかで,クラステンプレートの静的メンバの初期化をヘッダファイルでやっちゃうけれど,これって One Definition Rule (ODR) に違反する(同じヘッダを #include する異なる翻訳単位で2重に静的メ…

演算子によるデバイス/フィルタの合成/コピー

ちぅか,昨日のをスコープ限定型演算子構文糖(http://d.hatena.ne.jp/Cryolite/20050205#p1 の『[Boost][Range]iterationできるrange』を参照)使って書いたら楽しいことになる予感!! namespace cry{ namespace iostreams{ namespace composite_operators…

経県値

面白そうなのでやってみた. っていうか長年,自転車 + 野宿というのをやっていたため,野宿を「泊まった」の定義に含めた結果エライことに……. 全国統一はもうすぐぢゃ…….

うはーゆめがひろがりんぐ

Boost.Iostreams で遊んでみた結果,最終的に以下のようなコードに行き着く. ( cry::iostreams::newline_filter は boost::iostreams::newline_filter が Peekable を要求していてあんまり使い物にならないのを改良したもの. cry::iostreams::u_converter…

にゅおおおぉぉぉーーー

http://www.google.com/search?num=50&lr=lang_ja&q=%E6%99%BA%E4%BB%A3%E3%82%A2%E3%83%95%E3%82%BF%E3%83%BC+%E3%82%84%E3%82%8A%E3%81%9F%E3%81%84+%E6%99%82%E9%96%93%E3%81%AA%E3%81%84

整数型が表現可能な範囲の大小 - boost::numeric::is_subranged

ある整数型がある整数型で表現可能(前者が表現可能な値の範囲が,後者が表現可能な値の範囲の部分集合になっている)かどうかを判定する特性クラスとして boost::numeric::is_subranged template<class T, class S> boost::numeric::is_subrangedという特性クラスがある.で,</class>…

おさんぽ

久しぶりに自転車に乗って軽く散歩.一度行ってみたかった小さな八幡宮へお参り.もみじの紅が,遠くの山の緑と,青く高く澄んだ空に映えて素晴らしかった.鳥のさえずりしか聞こえない山の中の境内で小1時間のんびりと過ごす.これがいわゆる「心が洗われる…

内部で一時バッファを使うアルゴリズムのインタフェース

template< class SinglePassReadableIterator , class IncrementableWritableIterator , class SequenceMetaFunctionClass > void algorithm_using_temporary_buffer( SinglePassReadableIterator first, SinglePassReadableIterator last , IncrementableWr…

参照型を取る boost::variate_generator

そ〜いえば書くの忘れてて Boost.Random の話が出たので思い出したけれど, http://d.hatena.ne.jp/Cryolite/20050423#p2 この問題は // variate_generator のテンプレート第1引数が参照型なのに注目! variate_generator<mt19937 &, uniform_int<> > rnd(rng, uniform_int<>(-1000,10</mt19937>…

乱数関係のコンセプト

乱数生成系の Boost クラスは何かインターフェースが統一されていないというか,ドキュメントに書いてあるコンセプトの有効式がいくつか通らないクラスが多数ある.特にシード設定のあたりが乱数生成クラス毎にばらばらで統一されてない感があった.でも, h…

入出力として何を受けるか?

C++

http://d.hatena.ne.jp/Cryolite/20051116#p2 これって要するに型消した場合,「std::[i|o]stream で入出力を受ける」という当たり前のことしか書いてない気がしますよよよ?いやまぁ,その前段階で Device で受けていれば効率を考慮した小細工をちょこちょ…

入力・出力として何を受けるか

一般に「入力」や「出力」を受けるインターフェースは何を受けるべきか?という問題. たとえば,今考えている入力はファイルだからファイルストリームを受ければ良いかなぁ,でもファイルのパスを受けるっつーのもあるかにゃー?ファイルポインタはどうだろ…

相加相乗平均の関係の一般化

結城先生の日記の話題 http://www.hyuki.com/d/200511.html#i20051116160053 http://www.hyuki.com/story/tetora.html で http://www.hyuki.com/story/tetora.pdf にある相加相乗平均の一般化の問題に関して.高校生のとき,これの証明に感動して今だに問題…

符号化の問題

何か物事を考えるときに,とりあえず抽象的な問題に落とすというのは良くやる.抽象的な表記だとより広く客観的な視野をもって問題に取り組めるし,想定している具体的な問題がめっちゃくちゃアフォな問題だったとしても,そのアフォさ加減が完全に隠蔽され…

C++ ABI compatibility on GCC

ずげげ. GCC が吐くバイナリの ABI ってバージョン3桁全て(3.4.4 とか 3.3.6 とか)で指定されるのか.実行バイナリのバージョンタグ付けバージョン3桁とも指定しなきゃいけないじゃん.ぶ〜ぶ〜ぶ〜.でも,何か ABI 周りでイヤンなことが起きたときに ch…

kind system

前々から「C++ でいうところの concept という概念は,(Generic) Haskell では "kind system" と呼ばれている」とゆ〜のをちらほら目にしていて,"kind system" とゆ〜のが気になっていて仕方なかったのでお勉強してみようと web で資料を漁ってみるテスト.…

Boost 1.33.1 Beta

http://www.boost.org/ 1.33.1 Beta のリリースに今頃気が付いた……ってかベータってどういう扱いだ? ところで,VC++ 8.0 に関して Microsoft Visual C++ 6.0 (sp5, with and without STLport), 7.0, 7.1, 8.0. Note: Boost does not support the non-standa…

今日分からなかった/自信が無かった/適切な訳出に苦労した語句

tendency counter (verb) perspective attain susceptibility well-founded diverse confidence comprise along with retain ascertain rival (verb)

今日の収穫物

http://www.amazon.co.jp/exec/obidos/ASIN/4063613771/ 限定版が入手できなかったことについてはまことに遺憾であると申し上げざるを得ない. っていうかこれ面白すぎる.シュールな萌えというべきか.マンガとしての表現は著しくスパースなのに面白いとい…

notfile

http://thread.gmane.org/gmane.comp.lib.boost.build/9291 うひょー.これめちゃくちゃ欲しかったんだよ〜.これでインストールターゲットをソースとすることによって,「ある実行ファイルを(依存する共有ライブラリとともに)特定の場所にインストールし…

ふらむデスクトップとぅブラウザ

Google Personalized Homepage に乗り換えて思ったけれど,もうそろそろデスクトップに色々表示する時代は終わるのかもしれないにゃー.まー,マシン固有の情報はまだまだばんばんデスクトップに表示させますぐわ. ちなみにここ1年ほど全く変えてない超お気…

コード変換と blocking

どーでも良いけれど,いや良くないけれど,ストリーム上でのコード変換って一般に non-blocking なんだよなー.Boost.Iostreams って今のところ blocking I/O しか対応してないから,non-blocking I/O を blocking I/O に修正しないといかんのが微妙に面倒と…

未初期化な領域とアラインメント

C++

http://d.hatena.ne.jp/Cryolite/20051102#p1 を書いておいて,未初期化な領域とアラインメントについての配慮が実際に必要になる具体例を書かないと片手落ちな気がするのでとりあえず自分が知っている範囲で列挙しておきます. 自動変数として確保した領域…

std::codecvt with オレオレ state_type

C++

http://d.hatena.ne.jp/Cryolite/20051103#p1 に関して.自分がやりたいことは独自に定義したクラスを state_type としてコード変換することなので,std::codecvt から継承するんじゃなくて直接 std::codecvt の特殊化版を作れば良い事に気が付いた.std 名…