boost memo old

since: 2002-08-28 update: 2003-03-09 count:

なんとなく一定真面目に ML を読み始めたので。 まあ、まとめとくか、と。

三日程度放置すると軽く二三百のメールが。

本題の前にちょっと。 基本的に boost の開発は、 提案 => 試作(提案と同時であることも多い) => Formal Review (=> 次期 C++?) と進みます。 面白そうなライブラリが次の段階に進んだら大抵書きます。

いいかげんもうちょっと美しくまとめようと思います。

では本題。

1.30.0 branch-for-release holding

次期バージョンの準備が着々と。

Formal Review: Variant Library

ずいぶんと時間がたってますが Formal Review。 便利な union みたいな感じかな。

Request: BOOST_ENABLE_LONG_LONG

long long はデフォルトでは使わないでくれ、って話。 ちょっと前にTOGEさんと議論してたり…

io operations for stl containers?

std::vector を手軽に出力したい、って話。 確かに java の toString() は魅力的。 でも実装がいろいろ面倒だと思うのです…

named template parameters using mpl

Named Template Parameter をもう少しやりやすく。

Review Request: shifted_ptr<>

Philippe さんの Request だけど…がんばりますなあ。 Formal Review はじめるのかなあ?

document translation

素晴しいっす!! cppllをまきこむ 担当登録ページ。 私は… 何故か翻訳していた(本当は type_traits とかもやりたかった) static_assert の途中までが手元にあるけど取られちゃってるな。 まあちょっと待って空いてるのを適当にやろうかと。

database library?

database template library は? いくつかあるよ

Preliminary submission: command line & config file library

私は boost にこういうの欲しいと前から思ってました。 自分で作っちゃってるけど。

Next revision of boost::thread

次期スレッド話。

Metaprogramming: Using static const or enum?

static const int と enum はどっちがいいの、という話。 あまり関係無いけど、 これは凄い。 肝心の結論はスレッドが長すぎてわからなかったという。

lexical_cast "Future directions"

早く修正して欲しいところですね。

Review results: Optional library

Optional library が boost に参入しました。 このレビューの結果です。

Hello MPL world!

コンパイルタイム print を warning/error 以外で行いたいなあ、と。

Shared_ptr "mini garbage collector"

shared_ptr でガベコレ? 中身見れてません。

Proposal: Identifying libraries

ヘッダの依存チェックや、コードが規約に従っているかどうかを チェックする utility を作ろうという話です。

hash table library proposal

さっきの STL 拡張話の関連。 hash を boost に入れようじゃないかと。ありがたい。

STL extensions

SGI 拡張なんかを boost でカバーしようという話。 個人的には前からやって欲しいなあと思ってました。 SGI-select を select.h とかにして配布してたんで。

Serialization Review Results

うぬぬ、残念でござるよ。 要は時期尚早ってことらしい。 もうちょっと議論を煮つめようか、とのこと。 で、 boost-serialize ML ができました。

Formal review: Optional library

Request に対して、Formal review が始まりました。

Views a.k.a. container_adaptors released to sandbox

前の container_adaptors が sandbox 入り。

Call for Volunteers [license review]

boostに適合するライセンスかどうかについての、 ライセンスレビューを wiki で集めるとのこと。

get_pointer

partial specialization 無しでポインタとスマートポインタから 生のポインタから効率良く取りだす汎用関数が欲しいとのこと。 無理難題。

Sockets

頑張って作って下さい。

Formal Review Request: class optional

任意の型に未定義の状態を導入する。 Java の null, perl の undef。

New smart pointer library feature: debug hooks

スマートポインタのコンストラクタとデストラクタにフックを つけることが可能になるらしい。

Object Factory

元の投稿は置いといて、面白いのは、 こっちの virtual contructor

bind supports data members.

恥ずかしながら知らんかった… ちゃんとマニュアルに書いてあるのに…

MPL's "round" lambda

どひゃー。 angle bracket をうまく処理してくれる c++-mode があればいらんけど。 今まであんまり考えなかったけど、あるのかなあ。そういう elisp。 コンストラクタの初期化リストとかもうまくいかない時があるんだけど…

String algorithm library

こういうお気楽なのは個人的には大歓迎。 ミニマリスト的にはあれかも知れんが。

Named Template Parameters implementation

おお。ちゃんと進行していたのか。

Proposed Boost Assert

それ だっ!

Serialization Review

Serialization の Formal Review です。 まだ詳しく見てないですが、インターフェイス的には、 基本的にメンバを全部 oarchive なるストリームを使って 入出力すれば良いようです。 Java か。

Review results mimmax

boost に新しい仲間が増えました。 が、タイトルの typo が笑いを誘う。

relational table as an STL container -- any interest?

メモリ上に Relational Database を構成するそうな。

Proposal: cartesian_product algorithm and a finite state machinetemplate library

デカルト積と状態マシンライブラリへの proposal。 こういうのデカルト積っていうのね。知らんかった。 finite state machine は長らく放置されてますが…

typeof() substitute

typeof 欲しいなあ、ってさ。 新 C++ 繋がりでいくつか。 組織, template typedef, hash, new libraries Herb Sutter さん、グッジョブ。

Reference documentation: one approach

ドキュメントを XML で書いて XSLT で変換せんか?という話。 DocBookの方が良いとか Doxygen だとか。 ここで述べられているように、 ドキュメントがめんどくさくていい加減になったり、 びびって Boost に投稿しなくなる人が増える恐れはあるだろうなあ。 本当にこんなんやるんかい それがいい。 知ってる人は DocBook。知らん人は無理せんでええよ、と。 Synopsisはどうするかのう

Programming by contract

Design by Contract。事前表明、事後表明って奴です。 assert の超強力バージョンっていうか。 ライブラリの開発とか集団開発には良い言語機能では無いかと。 でもライブラリではクラスの不変表明はできないよなあ。 良い説明です。 結局これも言語単位でのサポートが欲しいと思うっす。

C++ committee Library TR progress in Santa Cruz

ライブラリワークグループのミーティング。 みんなあれはどうなったこれはで大変。 function と tuple は標準確定らしい。マンセー。 この勢いで boost 色に染めぬいて頂きたいもの。

…でも function は複雑な気持ちも。 正直、function やら bind やら lambda やらは 言語自身がサポートして欲しいのですよ。 C++複雑化上等。

tuple は… このままで投入ってことは無いよなあ。 MPL も標準に入れないと大変なことになりますよ?

instantiation_count

こういう小ネタメモっとくと後で便利。

Interest in bidirectional map?

bimap。 双方向参照可能な map です。 データ構造的には set二つで管理、とまあ普通の解だと思います。

構造はどうなってるのかな、 と Implementation を眺めた時に発見。

    class A                                                                    
    {                                                                          
        ...
    };
    class A A; // legal C++! object A is of type A

知らなんだ。 なんか変なインターフェイスだなあと思ったら、 面白いことやってるのね。

mojo II

mojo I zuto との絡みなんだろうけど、 文脈を把握しきっていない。 とにかく一時オブジェクト排除の話題。 コンパイラに任せとけ、と思わなくもないが…

Container Adaptors

iterator_adaptorのコンテナからのアプローチって感じで良いのかな。 この中で紹介されてたのが VTL

Numerical Integration

読んだり試したりする暇が無いのが残念。 積分のことだろう。 賛成意見を読んで。

> Boost needs some algorithms like this to increase scientific use.

とのことだが、 boost の人たちって、やっぱり アカデミックな人が多いのかなあ。 今度調べてみよう。 というのは、個人的には、やっぱ SMTPとか、 そういう卑俗なものも欲すいなあ、とか思ったり、 でもやっぱりそういうのを boost がやるのもおかしいかなあ、 と思ったり、やっぱり c++ 版 CPAN かなあ。

1.29.1

こんかいはパッチリリースが出る模様。 大変ですな。

1.29.0 RPMs available

RedHat系Linuxerにはありがたい。

physical units library

おお、いいね。 F [kg m/s^2] = m[kg] a[m/s^2] とかそういう単位付き演算を行なうライブラリ。 しかしみなさんコンパイルタイム演算が板に付いてますな。

Any interest in cross platform memory mapped file management class?

使ってみましたが、現段階ではたくさんエラーが出てしまったので諦めました…

Boost Version 1.29.0 released

わーい。 真剣に MPL の存在はアナウンスされない模様。 追加じゃない変更点では、functionの新形式は結構重要かな。 私が uBLAS 以外の解説を雑に書いているので、 参照していただけたら幸い。

Formal Review: The Spirit Parser Framework

EBNF 記法に従うパーサ。 treeと合わせてXMLパーサだとか、まあそういうものらしい。

Zero Unnecessary Temporary Objects: A Revolution

Loki の人です。 一時オブジェクトをライブラリ側でなくすという脅威の話題。

1. It does not require language changes.

ということで、また彼の魔法が見れるかもしれません。 まあ一年前の魔法は今の常識なんですがね。

any interest in a 'tree' container?

あ、これ昔見たことがあるな。 treeの標準機構としては文句の無い、 わかりやすいインターフェイスだと思います。 こういうよく練られたライブラリが boost の統合されるのは良いことかと。 深さ優先と幅優先のイテレータがあるわけです。 でもみんな欲しがってたものだけになかなか議論が白熱。 ポリシーベースでもうちょい詰める必要があるかと。

new initialization lib, any interest?

便利は便利なんだろうけどどうしても欲しいってことは無いかも。 テストとかやりやすくなりますな。

ML Interpreter for Template Metaprogramming

これは…凄い。

any interest in immutable_string/string pooling

lightweight パターンな string って奴、だと思います。 同じ文字列ばかりコピーする時は鬼のような速さを誇るっていうやつ。

cyclic buffer

これ自体はたいしたものに見えないんですが、 この後紹介されている、 cycle_iteartor が便利そうに思いました。 というか一度作ろうとしてやめた記憶が。

Formal Review Minmax

なかなか便利な感じ。凄い地味ではあるが。

math values

地味ながらも良い仕事。円周率とか自然対数などの数学定数。

Totally Cool

本当に凄い。Loki port な技術が使われとるんかな。 とうの昔に VC とはおさらばしちゃったのでよく知らんのですが。

compile time array initialization

返答 が preprocessor の一例として良いかと。 うぬぬ、凄い。

Boost coding guidelines

これは読むしか。

is_polymorphic

過去ログ消えとりますか?まあとにかく、

>> Where is 'is_polymorphic'? I can't find it in type_traits.

> It's not there. See boost/python/object/inheritance.hpp.

なんでんなとこに。

Possible interest in libraries

二つとも面白そう。 ソケットとIOのフォーマッタ(という表現が適切なのかどうか)。

ffts & special functions

高速フーリエ変換のことだと思う。 なんか最近数学関係がホットなのですか? Geometric Algebra Library Idea

1.29.0 branch-for-release complete

CVS 見る限り、1.29 で増えるコンポーネントは、 date_time dynamic_bitset format MPL multi_array signals uBLAS で良いのかな? しかし遅れすぎ。

Filesystem Library: Formal Review

ディレクトリ探査って、標準 C/C++ にないからすごくありがたい。 かなりおすすめ。 今のところ POSIX + Win32 をサポートってころみたいです。 まあ、でも例えば Borland C++ には POSIX 準拠の dirent.h とかあるのでいらんと言えばいらんかも。

とりあえず、 サンプルを書いてみた。 まだアンドキュメントでかつサンプルも用意されていない recursive_directory_iterator を使ってみたんだけど まあ、directory_iterator と似たようなものっぽい。 コマンドライン引数で指定されたディレクトリを ls -AR し、 それぞれに対してディレクトリかそうでないかを判定してます。

Arbitrary Magnitude Integer Library

こっちは BigNum。

固定小数点数のそれから。

テンプレート特別バージョンが無いVCでは動かんよ。 大抵のコンパイラはこれを最適化してくれるんじゃないの? ポリシーベースで選択できるのが良かろう。

Shared Container Iterator Adaptor

shared_ptrを意識せずに 参照カウントされた要素を持つコンテナを扱うってことかな。 使用例もあるけど今一つな例だと思うんですけど。

State machine proposal checked into sandbox

前にも出てきた state machine ですが、 結構面白くなってきたみたいですね。 ちょっとサンプル書いてみるかと思ったんですが、 sandbox に十分に良いサンプルがあるのでご紹介。 FSM.cpp

Formal Review for Interval Library beginning

数学的な区間を表すクラス。 [1-5] とかいう区間に対して、 さまざまな特徴を問い合わせたり、 写像を作ったりできる。

typedef boost::interval<double> I;
I range(-4.0, -1.0);
assert(in(-2.0, range));
assert(!in_zero(range));
I range2 = range + 2.0;
assert(in_zero(range2));
assert(overlap(range, range2));
I range3 = sin(range2);
assert(!in(range3, 1.1));

てなもんだ。数値計算なんかに便利なんだろう。

Serialization library - submission #5 and request for formalreview

もうすぐ Serialization が手に入るのですよ。

Fixed point integer template library

おお、boost が固定小数点数に着手っすか。 参考。割と需要があるみたいですなあ。

Template Metaprogramming Library(MPL) accepted

本当にめでたい。先越されたけど。

Minor update to all _ptr headers

cvs update かますとこんなものが追加されてたみたいです。

namespace detail {
  // is_pointerlike_helper enables Signals library to recognize shared_ptr
  template&lt;typename T&gt;
  type_traits::yes_type is_pointerlike_helper(const shared_ptr<T>&, int);
} // end namespace detail

何に使うの?なんて聞かれても答えられないのが修行不足。 MPL関係かと思ったんだけど、これ、実行時関数なんだよなあ。

後述、わかった。 type_traits で、is_pointer_helper 使って is_pointer を実装してた。 そういうことするのね。 type_traits/composite_traits.hpp 参照。

value_initialized<> uploaded to be Files Section

int a;
int b = int();
int c = 0;

とすると、b = c = 0 であることを利用したもの。

iterator::operator[]

確かにいらんなあ。使った記憶が全くない。 まあ、ポインタとインターフェイスを揃える意味で、か? でもなあ…

IntVec vec;
IntVec::iterator ite = vec.begin();
int a = vec[0];
int b = ite[0];
int c = *ite;

bout the "base_from_member" template in boost lib

こんなのあったのか。知らなんだ。 組み込みintとかから継承できてるし。 変更案は提案されてる通りで良いと思うのだけど、返事が無い。

more flexible lexical_cast

大方賛成できる内容ではないかと。

request for comment on possible submission to library

欲しい欲しい。早速作りたまえ。 …なんか協力できることがあればなあ、と思いますね。 こういうの見てると。

Release 1.29.0 Schedule slip

8月22日だそうで。

state_machine

なんか面白い感じ。#pragma once に萎えるけど。 完成品に期待。

Attempting resolution of Threads & Exceptions Issue

Thread & Exception も結着か、と思いきやまだまだ続くのか。 まあ、この投稿は割とまとめになるのかも。 このスレッド無視してるのでわからんが。

TextFilt

が宣伝に来た、が、放置されてますな。 重要なソフトだと思うし、インストールしてるけど使っていない。 だって、とっくの昔にエラーメッセージなんて素で読めるようになったし。

私が上で述べている問題が提起されています。

この返事、よく意味がわからんのです。 んー bind と lambda との相性が悪いの?

Named Template Parameters

やっと何が凄いかわかった。つうか凄え。 perl で func(-param1 => 'foo' -param => 'bar'); とかやる、 名前付きパラメータがテンプレートパラメータでできるのですよ。 この例 が解り良かったです。

bounded_iterator_adaptor

良いと思う。以下メールのサンプルコードのコピペ。

This way doing:
    std::copy (make_bounded_iterator(str.begin(), str.end(), 5), make_bounded_iterator(str.end()), std::back_inserter(copy_of_str));
would be equivalent to 
    strncpy (new, str, 5);

Unicode support

興味のある方はどうぞ。 ICU の話も出てますね。

Threads & Exceptions

恐ろしい話題。考えたくないので、 頑張ってかっこいいインターフェイスで私の視界から隠してください。

Filesystem

できればとても便利なことこの上無いですねえ。 これも標準委員会にガツンと言ってやって欲しい内容。 スクリプト言語の強みということでも正規表現と共通。 どうせスクリプト言語ほど綺麗には書けないんだろうけど、 汎用性では負けんだろうな。zipの話とか出てるし。

Regex library standardisation proposal

すげえ。ついに boost の黄金時代が来るの、かな。 ていうか今ごろ、って感じも少しある。 やっぱり 5年で標準変更ってのは今の動き的に遅すぎますなあ。

つかCVSは宝の山か、 policy_vector.hpp

でもきっと stdコンテナを typedef する以外に使わない、 ってオチなような気もする。

CVSまさぐってて発見、 smart_enum.hpp

c++ の生 enum ってなにげに使いにくいからありがたい。

3-state boolean type

true, false, indeterminate の三つの状態を持つ bool を作ろうという話。 この後 2ビット目のスペースがもったいないから 四つの状態を持つべきだ、 という意見が出て、いやテンプレートでいくらでも state数を指定できるように… と話が進みますが、んなもんいらんです。 まあ、3つ位ならあったら便利かも知れないけど…

signal

今のところ必要無いので品定めはしてません。 cppllでの類似話題。 cppllもこういうのばっかりだったらいいのになあ。うーん。

MPL

MPLスレッドの根っこはここだと思われる。 MPL、勉強したい。 http://www.mywikinet.com/mpl/ の Mini-tutorial を読んで 概略 を書いてみました。 template Meta programming 入門にはなるかも。 他もゆっくりと読まなくては。

serialization

欲しすぎ。

flexible pointer

mutable_ptr。 これが多分完成品。std::* コンテナに入る std::auto_ptr。 この関連で、 squad_ptr。 boost::shared_ptr より速いとのこと。 squad_ptr は速いぞ それへの批判。 結局 squad_ptr は使いものにはならんのかな。 ポインタにはうるさい Philippe氏。 まだまだがんばる さらにがんばる

uBLAS

やたら話題になってますね。一度使ってみたい。

temporary_ostringstream

欲しい、か。 非 std::string をたくさん渡すときに 片っ端から boost::lexical_cast するのは 面倒だし。 つうか std::string の << を実装したら良いのでは。

Simple Logging lib?

とてもとても欲しい。

Config questions for GCC 3.1

gcc マクロ一覧。

boost::variant

boost::any の友達? 解説が無くてよくわからん。

Should BOOST_NO_STD_LOCALE be true for GCC when __GNUC__ < 3

localeはよく知らんが、確かにヘッダ自体は gcc-3.0 からある。 問題はちゃんと動いているように見えないことなのだが。


home / index

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

shinichiro.hamaji _at_ gmail.com / shinichiro.h