mots quotidiens. | |
Daichi Mochihashi (持橋大地) daichi <at> ism.ac.jp | by hns, version 2.10-pl1. |
|
|||||||||||||||||||||||||||||||||||||||||||||||||
甲府城からの景色。 |
発表はどれも面白く, 質疑応答の時間に自分の発表に限らず色々な視点からの意見が
聞けて, 今回も有益でした。今回は松本先生(2日間通して奈良から来られていた)が
学生に発表を促したりしたとのことですが, やはり国際会議でただ発表するだけでなく,
こうして直接意見を聞ける場は当たり前ですが, 貴重だと感じます。
一日目の夜は皆さんはフランス料理を食べに行ったりしたらしいですが, 僕はホテルで
準備。それでも最終日はほうとうを食べに行ったりもして,
色々な方と話ができました。
甲府は噂に聞くように, 石の上で釜焼きになっているようなすさまじい暑さでしたが,
丹下健三の代表作の一つである山梨県立文化会館に行ってみたりと, 色々と
楽しめました。
ちなみに甲府駅の北側, 山梨県立文化会館の隣にある, 参加者がかっこいいと言って
いたぎざぎざの屋根の建物は山梨県立図書館で, 「新建築」2013年1月号に紹介が
載っているようです
(こちら)。
実は2日後の連休にプライベートでまた甲府に行ったので中に入ってみましたが,
建築も中身も本当に素晴らしい図書館でした。
山梨県建築文化賞をとっているとのことで, 流石だなと思います。
42 30 0 0となっている模様。 正統的には, ロケールに従って元の文字コードに戻して文字クラスを判別するのかも しれないが, そんなの遅くてやっていられないので, 以下のようなコードを地道に 書くことに。
#include <endian.h> #if __BYTE_ORDER == __LITTLE_ENDIAN #define ubyte(w) (*((char *)&(w)+1)) #define lbyte(w) (*((char *)&(w))) #else #define ubyte(w) (*((char *)&(w))) #define lbyte(w) (*((char *)&(w)+1)) #endif wtype_t wtype (wchar_t w) { unsigned char c1 = ubyte(w), c2 = lbyte(w); if (0x4E <= c1 && c1 <= 0x9F) return ZEN_KANJI; .. }wstring の中身が(普通の方法では)UTF-16というのはあまり聞かない話 なので, (専門の人には知られた話かもしれませんが)ちょっと書いてみました。 というか iswctype(3) が荒っぽすぎるので, 自分で文字クラスの関数を書かないと いけないというのはどうよ, みたいな気が少ししたりして。。
if (t == LATIN_CNTL) return "LATIN_CNTL"; if (t == LATIN_SPACE) return "LATIN_SPACE"; ....のようなコードを延々と書く必要があって, 何とかならないものかと思っていた。 (今回に限った話ではなく, 前にも同じように思ったことがあった。)
#define inspect_type(t,type) { if (t == type) return #type; } inspect_type(t, LATIN_CNTL); inspect_type(t, LATIN_SPACE); ...と書いておくと, cppが置換して上と同じコードにしてくれる。(g++ -E で見ると わかる。) ブラボー。初めて使った機能でした。
ちなみに, これは「変数の名前」を"文字列"=データに変換できるということなので, かなり面白い。たとえば,
#define varexec(v) ((void(*)(void))#v)()のようなマクロを定義しておくと, 変数vの名前を文字列にして, それを関数だと 思って実行することができるはず。だから例えば, 原理的には ASCIIで hello world のような感じで
#define varexec(v) ((void(*)(void))#v)() int main (int argc, char *argv[]) { int PTXHHHH0Z_18RVX75ow = -1; /* 中身は何でもよい */ varexec(PTXHHHH0Z_18RVX75ow); /* = ((void(*)(void))"PTXHHHH0Z_18RVX75ow")(); が実行される */ }とできるということ(!)。 *1
タイトル一覧 |