2004-09-01から1ヶ月間の記事一覧

Boost.Range

Boost.Rangeで遊んでみる. #include <functional> #include <algorithm> #include <boost/range.hpp> // 1.31のリリースには入ってない.(CVSには入ってる) #include <iostream> char const *str[] = {"jkl", "abc", "ghi", "def"}; struct ntcts_less // ntcts: Null Terminated Char TypeS : public std::b</iostream></boost/range.hpp></algorithm></functional>…

lambda式を直接適用可能なmake_transform_iterator

id:Cryolite:20040519#p2で取り上げたコードの改訂版. #include <boost/iterator/transform_iterator.hpp> #include <boost/iterator/iterator_traits.hpp> #include <boost/lambda/lambda.hpp> template<class T, class Iterator> inline boost::transform_iterator< boost::lambda::lambda_functor<T>, Iterator, typename boost::lamb…</t></class></boost/lambda/lambda.hpp></boost/iterator/iterator_traits.hpp></boost/iterator/transform_iterator.hpp>

MPL Set

http://lists.boost.org/MailArchives/boost/msg72170.php なんだ,もう使える状態なのか・・・って http://cvs.sourceforge.net/viewcvs.py/boost/boost/libs/mpl/test/set.cpp?view=markup ( ゜∀゜)アハハ八八ノヽノヽノヽノ \ / \/ \ 聞きました,奥さ…

リークテスト on MSVC

MSVC上でテストでリークが無いか簡単に検出するとき自分は下のように書いてるけれど,もっと良い方法ってあるのかな. #define BOOST_AUTO_TEST_MAIN #include <boost/test/auto_unit_test.hpp> #include <boost/config.hpp> #if defined BOOST_MSVC #define _CRTDBG_MAP_ALLOC #include <stdlib.h> #include <crtdbg.h> BOOST_AUTO</crtdbg.h></stdlib.h></boost/config.hpp></boost/test/auto_unit_test.hpp>…

"stl 例外安全 vector push_back"

こんなリファラが.折角だからstd::vector(std:deque)の例外安全性の表でも作ってみましょうかね.本来なら実装依存ですけれど,まぁこの表より例外安全性緩める理由は無いはず(というか自分がstd::vector作るならこうする).std::vectorの例外安全性 valu…

奥が深い症候群 in STL

STL(に限らず多くのコード)の実装の中には「一見自由度があるように見えて実はそれしかない」って感じの部分があって,その真意を理解するとついついうれしくなるんですけれどこういうのって私だけじゃないですよね?何か「奥が深い症候群」とか「バッドノ…

久しぶりの運動の前には念入りに準備体操をしましょう,という教訓

昨日・今日と泊りがけで出かける 泊まり先で2時間ぶっ通しで卓球@真剣 筋肉痛(特に右足のふくらはぎはどうも痛めたらしい) アフォですな.いや,楽しかったけれど.別に遊びに行っていたわけじゃないですよよよ?

続:関数のオーバーロードと関数テンプレートの特殊化

となると template<class T> void f(T); // A template<class T> void f(T*); // B template<> void f<int>(int*); // C int i; f(&i); // Cが呼ばれるtemplate<class T> void f(T); // A template<class T> void f(T*); // B template<> void f<int*>(int*); // C int i; f(&i); // Bが呼ばれる当然こうなる</int*></class></class></int></class></class>…

関数のオーバーロードと関数テンプレートの特殊化

#include <iostream> template<class T> void f(T t) { std::cout << "A" << std::endl; } template<class T> void f(T *p) { std::cout << "B" << std::endl; } template<> void f<>(int *p) { std::cout << "C" << std::endl; } int main() { int i; f(&i); }「さて,どのfが呼ばれるで</class></class></iostream>…

スクロールスーパーpre

長ったらしいスーパーpreをスクロールさせて可読性の向上を試みるテストちぅ. これで1000行レベルのコードも張り放題w.

量子テレポーテーション

http://headlines.yahoo.co.jp/hl?a=20040923-00000301-yom-soci というかid:quantumよ.量子テレポーテーションのキーワードの説明の後半はどう見ても「少々」専門的どころじゃあないだろうw. 「古典情報の送信によって量子情報を移動できる」って捉え方…

特殊化(SFINAE)を使わずにpow

根本的に間違いがあったので削除. 今日の心得:テンプレート再帰は特殊化じゃないと止まらない.

メタpowについて補足

id:Cryolite:20040923#p1のメタpowについて若干補足.整数べきの高速な算法として例えば2^10を 2^10 = 2^(2+8) = 2^2 * 2^8に分解 2*2を計算 2^4を2.で計算した2^2を使って(平方して)計算 2^8を3.で計算した2^4を使って計算 2^2と2^8を乗じて2^10を計算 と…

constって要るの?

C++

もう超恒例の話題と言っても過言じゃないでしょう,これ. http://www.talkaboutprogramming.com/group/comp.lang.c++.moderated/messages/168642.html それにしてもこんな巨大なスレッドは本当に久しぶりに見た希ガス.

上を踏まえて実際にやりかったのが以下. #include <boost/utility/enable_if.hpp> #include <boost/mpl/arithmetic.hpp> #include <boost/mpl/bitwise.hpp> #include <boost/mpl/comparison.hpp> #include <boost/mpl/int.hpp> #include <iostream> typedef boost::mpl::int_<0> zero; typedef boost::mpl::int_<1> one; // pow(m, n) = pow(m…</iostream></boost/mpl/int.hpp></boost/mpl/comparison.hpp></boost/mpl/bitwise.hpp></boost/mpl/arithmetic.hpp></boost/utility/enable_if.hpp>

再帰算術メタ関数の再帰停止条件

a(n) = a(n-1), a(0) = 1で定義される簡単な数列を模した算術メタ関数を作ろうとした.今回,static constな定数(value)を内部に持たずに,あくまでメタ関数としてのみの機能(type)を提供するメタ関数を作ることにこだわってみた.なので,入力・出力はb…

再帰算術メタ関数

以下は全てVC++7.1で確認.他の環境では別の問題が出る可能性もある.

雑誌コーナー@Amazon

Amazonに雑誌コーナーが出来てる・・・ http://www.amazon.co.jp/exec/obidos/stores/bkmgn1-22

続:2chのスレへトラバ

2ch

っていうかだいぶ前から存在する機能みたいだ・・・ http://qb5.2ch.net/test/read.cgi/operate/1072413763/ なんで今まで気が付かなかったんだろう・・・.他の人もほとんど使ってないみたいだし.専用ブラウザが対応していないのが悪いんだろうな,きっと…

The Flash Mind Reader

http://www.dslextreme.com/users/exstatica/psychic.swf にゅーん.引っかかった・・・.悔しい. #上の遊び方 2桁の数を思い浮かべる 各桁を足した数を元の数から引く 右の表から引いた結果の数に対応する図形を強く念じる 水晶をクリック (例えば23を思…

2chスレへトラバ?

2ch

2chのスレにトラバが飛ばせるようになってるぅ!?

STL lover

私はSTLが好きなんですが「実装の集合としてのSTL」が好きなわけではなかったりします.STLの実装なんてベンダ次第でどうにでもなるものだし,最低限のことをやってくれていればどうでも良いと思っています.もちろん,便利に使わせてもらってはいますが. …

vectorのヤツを読み返してみる

d金魚さんからトラバをもらっていたので少し自分の過去の日記を読み返してみました. id:Cryolite:20040716やid:Cryolite:20040717ですが,今読み返してみると結局書き散らかしているだけで要領を得ない文章になっているなぁと思いました.反省しきりです. …

動的多相性の後付け

動的多相性を後付けできるか考えてみる. 結論:「出来るけど('A`)ノ マンドクセー」 #include <iostream> class triangle { public: void draw() const { std::cout << "triangle::draw" << std::endl; } }; class rectangle { public: void draw() const { std::cout </iostream>…

SFINAEの動作保証

C++

SFINAEの標準文言としての根拠ってどれ〜?

このBBSは信頼と欺瞞の提供でお送りいたしました.

http://www.kmonos.net/wlog/42.php#_0218040908とかhttp://d.hatena.ne.jp/hyuki/20040918とか経由で. http://ninjinix.x0.com/wolf/index.rb 前から気になっていて,とりあえずログ読んでみた. ここで展開されるドラマがどんな推理小説よりも面白いと思…

もらい泣きしそうになっちゃったことは内緒だよぉ?

自分はチームで言えば阪神ファンなんだけれど,選手で誰が一番好きかと問われたならあのメガネの名捕手の名前を即答する.その人が本気で泣くところを見るとは思わなかった.同情云々もあるけれど,何よりその進退窮まった雰囲気が見ていて辛かった. 彼らの…

lvalue_cast

あ〜,もぉ!面白そうだけど,内容読んで判断してる時間ねーからリンクだけ張っといたれ! http://lists.boost.org/MailArchives/boost/msg71273.php (boost.devel 2004/09/15)

give me a const iterator

http://lists.boost.org/MailArchives/boost/msg71266.php (boost.devel 2004/09/15~) In the pre-redmond mailing Walter Brown discusses the possibility of adding these members to standard container classes: const_iterator cbegin(); const_iterat…

Dot in Boost Library Names?

http://lists.boost.org/MailArchives/boost/msg71204.php (boost.devel 2004/09/14~) この日記ではよくboost::bindとBoost.Bindで表記揺れしてるから,意識して揺らさないようにしようかな.それにしても細かいことだよなぁ.(でも,仕事でこんなこと言っ…