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

NTPと型のアップキャスト

C++

先日の記事(id:uruwasi:20080220:1203484601)で “後はboost::is_base_ofを使ってNTP_REDECに入力する型を基底クラスにキャストする実装を書けばいいんだけれど” 型に対するキャストとはどう言う事だ となじられるのも嫌なので、気力を++して書いてきました…

C++をやる前に英語を勉強した方がいいんじゃ・・・。

C++

NTPのマクロの中途半端な実装 後はboost::is_base_ofを使ってNTP_REDECに入力する型を基底クラスにキャストする実装を書けばいいんだけれど、下にある通り衝撃的な情報を入手したので書く気力が消滅。 #include <boost/preprocessor.hpp> #include <boost/type_traits.hpp> #include <iostream> #define NTP_TUPLE_ARGT</iostream></boost/type_traits.hpp></boost/preprocessor.hpp>…

難しく考え過ぎでした

redecで再設定するクラスターゲットを指定すれば良いだけの話。多分これで継承問題を解決できると思います。思うだけです。知りません。 勢いで書いたので、冗長な部分とかあったら添削とかツッコミとか可。 楽しみに待っててね!!!!!!!!!!!!!!…

思ったよりも苦戦しております

継承問題を解決するNTP生成マクロが難しい。 まず、引数再設定を行うクラスの中に「再設定を明示する何か」(redec)を入れることはボツ。昨日の様に、同じNTP生成マクロで生成したクラスを継承すると基底のものか派生のものかで曖昧になるからですううう。 …

先日のNTPなクラスを簡単に定義するマクロ(id:uruwasi:20080217:1203225365)を力作業でないもの、例えばBOOST_PP_REPEATなどを使って書こうと思う。近々。 name_rec__::redec内の、再設定するテンプレート引数を受け取り再設定するもの以外の引数を既存の…

NTPなクラスを簡単に定義するマクロ

追記:いろいろと突っ込みどころが・・・ 追記:おかしい点だと思われる、NTP_N.hppの全体の行数、NTP_32.hppの説明、ヘッダを生成するコードを修正。ヘッダを生成するコードの汚さは未だ修正されず・・・。 自殺したんじゃないの? boostのソースを読んでい…

C++が凄すぎるので自殺します。

箱男の激短感想

「ドグラマグラみたいに読む度に違った風に捉えることができて面白い」っていってしまうと読解力の不安定さが強調されてしまう感じでアレなんだけど、どうしても作品全体が読み手に対する形而上的な問いかけの媒体としてある様に思えてしまう。勿論、その作…

果たしてここを見ている人はいるのだろうか

昨日の三角関数テーブルの記事は再帰bind(再帰逆bindかテンプレート引数再設定か)を利用して TrigonometricFunction<>::precision<24>::result_type<float>::end の様に書く事ができます、という今更な説明。 そんな事はどうでも良い。問題は、こういった丁寧な説</float>…

三角関数のテーブル

C++

テンプレート引数で精度(2^N)と結果の型を変更できるようになってます。 速度とか最適化とかは、実はあんまり気にしていません。 #include <iostream> #include <cmath> template<unsigned int N = 16, typename T = double> class TrigonometricFunction; template<unsigned int N, typename T> class TrigonometricFunction_TmpRec{ private: temp</unsigned></unsigned></cmath></iostream>…

ある型が何を継承しているのかを追いたい

今の所、型Bが型Aを継承しているかどうかは下みたいな感じで分かっても、 #include <iostream> struct A{}; struct B : A{}; struct C{}; struct r0{ char a[2]; }; typedef char r1; r1 test(A); r0 test(...); int main(){ std::cout << (sizeof(test(B())) == sizeo</iostream>…

過去ログとか改めて読んでると「小学生の日記か」と思ってしまう。疲れてる時に書いてるだけあって日本語がおかしい。

異種混合自動delete

C++

特に書きたい事もないので簡単なものをひとつ。 概要 クラス autodelete のメソッド reserve もしくは reserve_array で自動で開放したいメモリへのポインタを予約し、 autodelete のインスタンスがスコープから外れるか破棄を明示すると登録したポインタを…

今『箱男』という本を読んでいます。この本に限らずいろんな本に言えるんですが、ストーリーとはあまり深い関わりを持たない、一時の感情や雰囲気に沿った表現や、同じく話の本筋とは関係のない下らない(しかし描写する場の雰囲気を引き立てたりとか登場人…

template引数の再帰bind

C++

簡単な概要 テンプレートクラス asdf があるとする(a, b はテンプレート引数)。型 asdf::arg_a::end は型 asdf と同じ。型 asdf::arg_b::end は型 asdf と同じ。そんな感じで。 実装 #include <iostream> template<int a, int b> struct asdf_; template<int a, int b> class fdsa{ private: temp</int></int></iostream>…

復活します。何ヶ月更新してないんだ?65536ヶ月くらいか?まぁそんなことはどうでも良いです。 何もしてなかった間は、文字通り何もしてなかったり何かしていたり、今更だけどModernC++Design読んだりしてました。あとは怒首領蜂大往生をしたりMGS3をしたり…