トップ «前10日分 最新 次10日分» 追記

はじめてのにき

ここの位置付け

2004|11|
2005|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|04|05|06|

ToDo:


2006-06-24

_ うにまがが終わったらしい

別に残念でもないような…?

(02:41)

_ template

がどうとか言ってる子はキモい子です! って話があったんだけど、 みんなどういう理由でそんな子になってしまったんだろうか… あと妙に同世代が多い気がするんだよな。 少し上の人は I hate C++! がデファクトに なりきっているというか。

世界で2番目に誤解された言語 C++ 。とかどうだろう。

いや、別に誤解はされてないな…

まぁそんなこんなで最近見てる人の経歴を適当に見てみる。

http://d.hatena.ne.jp/Cryolite/

同世代の模様。

http://d.hatena.ne.jp/rinset/

奥さんがいらっしゃるってことは少し上かしら。 しかし最近はそういう判断は外れる歳になっている。

http://d.hatena.ne.jp/syd_syd/

大学院生さんらしい。 いかにも言語好きーな人なのでわかりやすいかな。

http://d.hatena.ne.jp/y-hamigaki/

今気付いたけど cppll でよく見る人だったよ!

http://d.hatena.ne.jp/mb2sync/

あーそういや Boost.Typeof 見てみないとなーと思ったんだった。 http://d.hatena.ne.jp/mb2sync/20050422#p1 はあとで見る系。

結局世代とかよくわからんかったけど なんでもいいや。

(03:07)

_ Boost.typeof

http://www.accu-usa.org/2000-05-Main.html

あれーユーザ定義型はーと思ったら REGISTER_TYPEOF とかあるな…

しんどいけどマジメに追ってみよう…

#include <iostream>
#include <list>
#include <boost/typeof/typeof.hpp>

using namespace std;
using namespace boost;

struct C {
    C() { cout << "hello world!" << endl; }
};

int ifunc() { return 0; }
list<int>::iterator itefunc() { static list<int> l; return l.begin(); }
C cfunc() { return C(); }

int main() {
    BOOST_AUTO(i, ifunc());
    BOOST_AUTO(ite, itefunc());
    BOOST_AUTO(c, cfunc());
}

ああうん。すごいな。

(03:36)

int main() {
    BOOST_TYPEOF(cfunc()) c = cfunc();
    c = *(new BOOST_TYPEOF(cfunc()));
}

_ が、 cl.exe だと、

int main() {
    boost::type_of::msvc_typeid_wrapper<sizeof(*boost::type_of::encode_start(cfunc()))>::type c = cfunc();
    c = *(new boost::type_of::msvc_typeid_wrapper<sizeof(*boost::type_of::encode_start(cfunc()))>::type);
}

_ こうなる。 GCC だと __typeof__ になる。

_ インスタンス化するたびにカウントアップする template とか作れば、 まぁこれで作れるかなぁ。

_ で、インスタンス化するたびにカウントアップねえ…

#include <iostream>
#include <list>
#include <boost/typeof/typeof.hpp>

using namespace std;
using namespace boost;

struct C {
    C() { cout << "hello world!" << endl; }
};
struct D {};

C cfunc() { return C(); }
C cfunc2() { return C(); }
D dfunc() { return D(); }

int main() {
    BOOST_TYPEOF(cfunc()) c = cfunc();
    c = *(new BOOST_TYPEOF(cfunc()));
    cout << sizeof(*boost::type_of::encode_start(cfunc())) << endl;
    cout << sizeof(*boost::type_of::encode_start(cfunc2())) << endl;
    cout << sizeof(*boost::type_of::encode_start(dfunc())) << endl;
}

_ が、 5 5 6 と出力する。明らかにカウンタがある。

_ http://boost-sandbox.cvs.sourceforge.net/*checkout*/boost-sandbox/boost-sandbox/boost/typeof/msvc/typeof_impl.hpp?revision=1.5

_ どう見てもカウンタみたいです。 実装がよくわからんがな。

_ あとまぁ msvc/ 以外の実装は不明チックな。 compliant implementation もよくわからんけど、 要するに BOOST_PP マンセーってことですか。

_ んー。なんか昔見たことある気が超するんだよなぁ。

_ (04:26)

_ あれ

むっちゃカンタンじゃん。

TypeList に放り込んでその Length 返すだけ。 以上。

(04:35)

_ いや違うだろと思ったりしつつ

なんかだいたいわかった気もした。

気が向いたらちゃんと追う。

(05:24)

_ server side JavaScript

最初聞いた時は冗談レベルに思ったけど、 もっと評価されていいよなぁという気がした。

このへんとかも面白げである。

http://www.tohoho-web.com/html/server.htm

(05:32)

_ 宇多田とテトリス

http://club.nintendo.jp/tetris_campaign/index.html?C

(19:40)


2006-06-23

_ しんどい

(01:01)

_ DS ブラウザ

かー。

何に使うんやろ。

(02:33)


2006-06-22

_ やわらか

おっぱい塾

(01:40)

_ 清書

template <class T> struct S {
private:
    static T m();
public:
    enum { t = sizeof(m()) };
};

についてヒマな時追ってみる。

(01:41)

_ sizeof

int i; sizeof i; は合法、 sizeof int は非合法。

(01:43)

_ とうふ

i@un ~> grep '^とうふ ' /usr/share/skk/SKK-JISYO.L
とうふ /豆腐/豆富/■/

(19:05)

_ しんどい

というか寒気。

(19:11)


2006-06-21

_ もな

_ へへへ

_ まけ

_ (19:18)


2006-06-19

_ うへえ

62byteかい。

(12:07)

_ こんぴゅーたの進化は Apple が独り占め☆

http://tinyurl.com/f83fo

(17:41)

_ d530s

(19:24)


2006-06-18

_ てすとめーるです

(02:29)

_ brainf*ckでも書いてみよう…

とか思ったけどやめた。 割に簡単そうだけどめんどすぎる。

(23:21)


2006-06-17

_ うおー

モーションは相対位置で記述すべきだったよ…

(10:18)


2006-06-16

_ なんか

一瞬でやる気がうせた

(00:38)

_ あのさあ氏

http://makimo.to/2ch/yasai_arc/982/982835694.html

こんなかっこいい人だったのか…!

(04:09)

_ へえええ

http://slashdot.jp/mobile/article.pl?sid=06/06/15/1454239

それでテレビ動いてるかわかんないのか…

(10:43)

_ Haskell自体が

頭の体操のための言語じゃなかったのか! あ、それとクイックソートか。

それはともかく最近 D も頭の体操以外の何者でもない。

(15:08)

_ OOPは銀の弾丸

だなんて言ってるヤツが失望してほげほげなのさ、 とシニカルに言うのが流行りらしいから、 関数型言語が銀の弾丸だと言ってるヤツはほげほげなのさ、 と言うことにしようか。

(15:10)

_ 今日の残った時間は

論文を忘れよう。何か作ろう。ネタを。

(15:11)

_ 前もメモった気もするが Safari AJAX

結局、リクエストは UTF-8 で来てるので、 それを EUC になおさず処理しちまうのが一番良い。

そんで

http://kawa.at.webry.info/200511/article_9.html

紅茶は text/plain だからうまくいってるのかなぁ。 よくわからん。

(22:39)


2006-06-15

_ やっぱよく考えると

opCall 実装できないな…

よく考えてわかったんならいいんだけど、 他実装してからわかったというのが悲劇。

(01:07)

_ よくわからんが

やっぱできる、か。

(01:10)

_ signature.d

ごめんなさい再帰的にほげほげはこりゃ無理だと思って諦めました。

オサレじゃなくてもすぐできたから、 あっさりできた、と書いたとか。

具体的にはこんな感じの rettype と argtype ができれば自明な実装。

http://shinh.skr.jp/tmp/signature.d

(16:27)


2006-06-14

_ 2度目の暗黙インスタンス化パターン

ほめてもらたーと思いつつ。

なんというか、書いてる最中とか 書き終わった後は何がキモだったか覚えてるけど、 memo/hatena 書いてる最中は忘れてる現象。

ぷろぐらむの語彙が貧弱な僕こそ 適当に名前をつけてキモを把握しておいた方がいいんでないかとか、 いややっぱデザパタ重要なんじゃないかとか。 だいたい自分のできたことすら把握してないから 人と話す時困るんだ。

マッチング能力は、 暗黙テンプレート引数>明示テンプレート引数>static if の : 、 なんだけど、 C++ だと 暗黙のテンプレート引数でマッチさせたものは関数なので、 そこから型を取り出すことが(たぶん)できない。 その関数を実際に呼んでしまってクラス返せばできるけどね。 でも D は typeof あるから取り出せるぜへへん、っていう話か。

static if はええとなんで弱いんだっけ。 思い出せんのだからメモをすべきだ。

ええと…

is ((T, U) : ???) って感じで書きたかったのは覚えている。

思い出した。

is (T (U, V) : U function(V)) と書きたかったんだ。 つかこれできたら暗黙テンプレートと同じマッチ能力あるじゃん。

つか2変数以上の部分特殊化ができない、 って書いてくれてるじゃん。

暗黙テンプレート引数>明示テンプレート引数=static if の :

だなたぶん。

やっとノウハウとして蓄積できた気がした…

D in depth Wiki とか作って C++ と違うテクニックを集積するとか。

誰が見るんだ、って勢いの Wiki を。

集積したテクニックはたぶんよく使えそうなものは もっと簡単な文法を Walter さんが導入しちゃうんだろうけど、 まぁ言語の進化ってのはそういうものだろう。

とりあえず /template/ みたいなノリで ひどい状態の /d/ をなんとかしよう。

(01:20)

_ C++

いったん関数呼んだらできる…のか? できなくね。

(01:29)

_ もけー

現実逃避するな

(01:30)

_ 現実逃避

前から思ってるけど、 いろいろタイムリーな気がするので bind が書きたい。

しかし現実逃避はよくない。良いんだけど。

過度の現実逃避はあなたの社会生活を害する恐れがあります。

(01:43)

_ argtypeN

をおされに書く方法が無ければやる気が起きないと気付く。

なんとかして再帰的な定義に持ち込めないか…

void (T t, ...) と void (T t) のオーバロードが できればなんとかできそうだけどできない。

つかそれがなんとかできても tail みたいなのが実装できんか。

argNum は実装できそうだなぁ。

TODO: 現実逃避をやめる。

(03:36)

_ そいや

なんかみんなやってるけど オサレな関数とか作るのもういいから、 だって別に他の関数型言語でもいいしな、 モナドとか型やろうぜーとか言ったら

http://haskell.g.hatena.ne.jp/mr_konn/20060613/1150213544

やった。

いやすげーなあああああ

(けど実は簡単な)IOモナド

というフレーズが実にクルものが。

IO はやっぱ IO って名前でいい気がします。 あと do の外でモナド外せたらマズくね、とか。

次はぜひ型をお願いします。

(07:13)

_ 少し寝て起きたら

n^2 の場合の N-cat state の SNR を計算する。

決して bind を書くんじゃない。

(09:59)

_ それぞれをどう定義したとしても

auto dubl = convolution(&concatMap, &replicate);

とは書けない気はする。 うぬぬ生意気な。

けど本当にできないのかな。 なんかほげほげできそうな。

メモ template opCall

(12:51)

_ signature.d

   int func(char, bool, char[], int[char[]]);
   alias functor!(typeof(&func)) f;
   static assert(is (f.rettype == int));
   static assert(is (f.argtypes == TL!(char, bool, char[], int[char[]])));

ふむ。割にあっさりできた。

(18:48)


2024年
6月
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30
1.shinh(2014-05-24 03:56) 2.YT(2014-05-24 03:56) 3.niha(2014-05-24 03:56)
search / home / index

全てリンクフリーです。 コード片は自由に使用していただいて構いません。 その他のものはGPL扱いであればあらゆる使用に関して文句は言いません。 なにかあれば下記メールアドレスへ。

shinichiro.hamaji _at_ gmail.com / shinichiro.h