Android の libc は Bionic なる実装らしい。これは何者だ…BSDライセンスとな。 http://bit.ly/dnKjFk #msgpackhack
2010-09-12 11:26:59「C++の例外機能は未サポート」 "NDKの使い方 Androidのネイティブ開発環境" #msgpackhack http://bit.ly/bG1ibU
2010-09-12 11:29:04uClibc++は例外も使えるらしい。例外を使えないEmbedded C++環境って、どれくらいメジャーなんだろう。 #msgpackhack http://bit.ly/alaPEc
2010-09-12 11:30:58う~ん、やっぱりそうか。そんな感じは昨日してたけど RT @frsyuki 「C++の例外機能は未サポート」 "NDKの使い方 Androidのネイティブ開発環境" #msgpackhack http://bit.ly/bG1ibU
2010-09-12 11:30:59templateが使えて例外が使えない環境は Android NDK くらいな予感。将来的にはどうなるんだろう。Android NDKで例外を使えるようにするパッチを発見。 #msgpackhack http://bit.ly/c3z12u
2010-09-12 11:34:16C++的には、iterator::operator== でブロックするのはアリなのかな? ストリームデシリアライザだと、このタイミングでデータを読み足すことがある。#msgpackhack
2010-09-12 11:38:18C++版で、msgpack::objectはメモリ管理をしていなくて、配列やバイト列の実データはmsgpack::zoneの中にある。デシリアライズするとobjectとauto_ptr<zone>の2つが出てくるのだけど、イテレータでは何型を返すべきか。#msgpackhack
2010-09-12 11:47:38msgpack::unpackedを返せばいいのかなぁ。中身はobjectとauto_ptr<zone>を所有。unpackedがobjectを継承して、auto_ptr<zone>を所有する設計はアリやナシや。unpacked is-a object。#msgpackhack
2010-09-12 11:49:35objectを継承してshared_ptr<zone>を所有する managed_object を作るという案もあるのだけど、これはオーバーヘッドが微妙という話が…。あとshared_ptrが無い。tr1か。#msgpackhack
2010-09-12 11:52:01objectが動的型付け言語の変数のように見えて、実はメモリ管理は別というのが分かりにくいという話も。デフォルトではメモリ管理付きで、オーバーヘッドが気になる場合はメモリ管理を取り外して使える、というのも良さそう。APIの設計が悩ましい… #msgpackhack
2010-09-12 11:53:07zoneは1つのobjectの寿命を管理するだけの設計ではなくて、たくさんのobjectを一括管理する設計。Objective-C の Zone のアイディアを拝借したもの(2.0で無くなったけど)。objectに紐付けるのは微妙かも #msgpackhack
2010-09-12 11:57:26objectに参照カウンタが付いていないから、拝借しきれていないという話も。shared_ptr<zone>を所有させるのが一番きれいな印象。#msgpackhack
2010-09-12 11:59:31Android NDK で tr1::shared_ptr は使えるのだろうか… #msgpackhack
2010-09-12 12:01:22コンパイルしてみたことありますが無理でした。RTTI使用しているのが原因で。 RT @frsyuki: Android NDK で tr1::shared_ptr は使えるのだろうか… #msgpackhack
2010-09-12 12:03:15なんと… RT @nharuki: コンパイルしてみたことありますが無理でした。RTTI使用しているのが原因で。 RT @frsyuki: Android NDK で tr1::shared_ptr は使えるのだろうか… #msgpackhack
2010-09-12 12:05:08iPhoneはC++で例外も使える雰囲気。しかしbrokenだという声も。 #msgpackhack http://bit.ly/9rkyWn
2010-09-12 12:10:15例外を使えない Embedded C++ を使っている現場に出会ったことがない。現存するのだろうか…? #msgpackhack
2010-09-12 12:11:26例外が使えるなら、template<typename T> as_optional() try { return optional(as<T>()) } catch(type_error&) { return optional(); } で済む。#msgpackhack
2010-09-12 12:13:16カーナビなどの組み込み系はEmbedded C++使っていますよ。T社系列にいた時に使っていました。 @frsyuki: 例外を使えない Embedded C++ を使っている現場に出会ったことがない。現存するのだろうか…? #msgpackhack
2010-09-12 12:14:06ぁぁそういえば optional がない。msgpack::type::nilを返すのもアリかな… #msgpackhack
2010-09-12 12:14:09カーナビ…!なるほど RT @akehoyayoi: カーナビなどの組み込み系はEmbedded C++使っていますよ。T社系列にいた時に使っていました。 @frsyuki: 例外を使えない Embedded C++ を使っている現場に出会ったことがない #msgpackhack
2010-09-12 12:15:19eMbedded Visual C++ では、例外とRTTIが使えない。STLも? 4.0からは使える。#msgpackhack http://bit.ly/coVq4y
2010-09-12 12:18:24eMbedded Visual C++ は、少なくとも2003年7月18日にはリリースされているらしい。最近のWindows CEな環境なら、基本的に例外は使えると考えて良いのかな。 #msgpackhack
2010-09-12 12:21:37