[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 06/16 09:47 / Filesize : 198 KB / Number-of Response : 952
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Boost総合スレ part9



1 名前:デフォルトの名無しさん [2010/05/28(金) 11:49:47 ]
過去スレ
Part 8 pc12.2ch.net/test/read.cgi/tech/1251446016/
part 7 pc12.2ch.net/test/read.cgi/tech/1232367742/
part 6 pc11.2ch.net/test/read.cgi/tech/1207749841/
part 5 pc11.2ch.net/test/read.cgi/tech/1192662575/
part 4 pc11.2ch.net/test/read.cgi/tech/1175663346/
part 3 pc11.2ch.net/test/read.cgi/tech/1158991211/
part 2 pc8.2ch.net/test/read.cgi/tech/1139313234/
part 1 pc8.2ch.net/test/read.cgi/tech/1091198276/

■関連サイト■
Boost C++ Libraries
www.boost.org/

Boost 翻訳プロジェクト
boost.cppll.jp/HEAD/

Let's Boost
www.kmonos.net/alang/boost/

boost info
shinh.skr.jp/boost/

81 名前:デフォルトの名無しさん mailto:sage [2010/07/24(土) 12:02:15 ]
alohakun.blog7.fc2.com/blog-entry-586.html
lispから読めるCを生成する別な方法

82 名前:デフォルトの名無しさん mailto:sage [2010/08/05(木) 04:40:34 ]
boost-buildと、boost-jamの関係を教えてください。

83 名前:デフォルトの名無しさん mailto:sage [2010/08/05(木) 23:37:31 ]
恋人

84 名前:デフォルトの名無しさん mailto:sage [2010/08/06(金) 05:29:27 ]
英語のドキュメント読んでましたが、よく分かりませんでした。
まじめにお願いします。

85 名前:デフォルトの名無しさん mailto:sage [2010/08/07(土) 21:52:40 ]
lover

86 名前:デフォルトの名無しさん mailto:sage [2010/08/07(土) 23:06:13 ]
boostjamはインタプリタ

87 名前:デフォルトの名無しさん mailto:sage [2010/08/08(日) 23:56:10 ]
gauche.cgen.cise
のコード読んでるんだが、これあったらboostいらないかもしれない

88 名前:デフォルトの名無しさん mailto:sage [2010/08/11(水) 06:35:05 ]
comp.lang.lispに書いてること信じるなら
thinlispの方がgauche.cgen.ciseよりすごいかもしれない
makefile *.hまで生成するっぽい

89 名前:デフォルトの名無しさん mailto:sage [2010/08/13(金) 21:17:55 ]
a



90 名前:デフォルトの名無しさん mailto:sage [2010/08/16(月) 20:26:00 ]
>>70
の使い方をまとめた

CiSE simple example
d.hatena.ne.jp/niitsuma/20081113/1281521109


91 名前:デフォルトの名無しさん [2010/08/17(火) 03:24:37 ]
1.44
Boost C++ Libraries
www.boost.org/


92 名前:デフォルトの名無しさん mailto:sage [2010/08/17(火) 09:18:48 ]
>>90
これデバッグはしやすい?

93 名前:デフォルトの名無しさん mailto:sage [2010/08/17(火) 10:19:11 ]
>>90
別にスレ建てたほうが注目してもらえるよ。
「S式でCを書くCiSEスレ」とかにすれば関数型ファンがすぐ集まるよ

94 名前: mailto:sage [2010/08/17(火) 11:20:40 ]
適当なテンプレがあるなら、自分がスレ立てるけど

95 名前:デフォルトの名無しさん mailto:sage [2010/08/17(火) 12:54:13 ]
なんでCでこういうのむりやりやろうとするのか疑問だわ。
言語機能に組み込んで新言語つくりゃいいのに。



96 名前:デフォルトの名無しさん [2010/08/17(火) 13:01:41 ]
>>95
言語機能で提供すべきことと
言語自身を使って作るものの
単純明快な判断基準がウケたのがC
新基準を開拓に行くと出かけて帰りが遅いのがC++

97 名前:デフォルトの名無しさん mailto:sage [2010/08/17(火) 13:16:18 ]
lambdaが言語に組み込まれて良かったわ
ずっとboost.lambda使えっていわれたらどうしようかと思った

98 名前:デフォルトの名無しさん mailto:sage [2010/08/17(火) 13:25:20 ]
>>92
そのための
#line

99 名前:デフォルトの名無しさん mailto:sage [2010/08/17(火) 14:44:32 ]
>>95
lispの便利さを知ってしまうと他を使いたくなくなる
(コマンドラインgcc からVisualStudioに移ったぐらいの便利さがある)
しかし他から「成果はCかC++で納めてくれ」と言われることは多いらしく
cise とかthinlispとかこの手の試みがいろいろされてきたようだ




100 名前:デフォルトの名無しさん mailto:sage [2010/08/17(火) 15:35:02 ]
まあC++も最初はCのトランスレータだったし

101 名前:デフォルトの名無しさん mailto:sage [2010/08/17(火) 15:50:02 ]
lispそんなにいいとも思わんしいらんわ

102 名前:デフォルトの名無しさん mailto:sage [2010/08/17(火) 18:11:44 ]
誰かboostの構文生成するようなdefine-stm を作って公開しないか


103 名前:デフォルトの名無しさん [2010/08/26(木) 16:40:58 ]
質問です。
boost::tokenizer< escaped_list_separator_sjis > tok( csvLine );
for(boost::tokenizer<escaped_list_separator_sjis >::iterator p=tok.begin(); p!=tok.end();++p){

cout << *p + " ";//"\n";

これを実行するとすべてが1行にコマンドプロンプトに表示されます。
これをCSVファイルの並びと同じように行ごとに表示させたいですが
どうしたらよいでしょうか?良い解決策がありましたらお願いします。
<例>
a,e,d
q,d,r
r,u,t
これを実行すると
a e d q d r r u tのようになります。
これを
a e d
q d r
r u t
のようにしたいです。

104 名前:デフォルトの名無しさん mailto:sage [2010/08/26(木) 17:31:03 ]
csvLineに1行ずついれてるなら
for( 〜 ) {

105 名前:デフォルトの名無しさん mailto:sage [2010/08/26(木) 17:33:26 ]
間違えて送信した
for( 〜 ) {
cout << *p + " ";
}
cout << endl;
とでもすればいい
そういう問題じゃないのか?

106 名前:デフォルトの名無しさん [2010/08/30(月) 14:01:04 ]
boost::tokenizer< escaped_list_separator_sjis > tok( csvLine );
for(boost::tokenizer<escaped_list_separator_sjis >::iterator p=tok.begin(); p!=tok.end();++p){

cout << *p + "\t";
}
cout << endl;
これを出力すると
a e d
q d r
r u t
なりました。ありがとうございます。
これをタブ区切りでtsvファイルに出力したいのですがどうすればよいでしょうか?

107 名前:デフォルトの名無しさん mailto:sage [2010/08/30(月) 14:05:26 ]
>>106
Boostの埒外なので勝手にどうぞ。

108 名前:デフォルトの名無しさん [2010/08/30(月) 14:09:41 ]
tsvってなに?

109 名前:デフォルトの名無しさん mailto:sage [2010/08/30(月) 14:21:29 ]
>>108
TabSeparatedValueフォーマットの略。



110 名前:デフォルトの名無しさん [2010/08/30(月) 14:34:04 ]
106に書き込んだものです。C++で質問したいと思います。
申し訳ありませんでした。

111 名前:デフォルトの名無しさん [2010/08/30(月) 15:03:41 ]
>>108
トンクス、tab区切りなのか・・・。

112 名前:デフォルトの名無しさん mailto:sage [2010/09/01(水) 12:12:26 ]
Boost.Polygonきたー

113 名前:デフォルトの名無しさん mailto:sage [2010/09/01(水) 16:41:37 ]
Boost.Polygonって何に使うのか全然わからね。

114 名前:デフォルトの名無しさん mailto:sage [2010/09/03(金) 22:32:03 ]
boost::regex re("(\\d+)(?:,(\\d+))*");

boost::smatch result;
std::string str = "1,2,3,4";
if (boost::regex_match(str, result, re))
{
 for (int i=0; i<result.size(); i++)
  printf("%d: %s\n", i, result.str(i).c_str());
}

このようなコードを実行すると1と4しかresultから取り出せないんですが、
1から4まで全て取り出すにはどうしたらいいですか?
実際はもっと複雑なフォーマットなので正規表現でなんとかしたいです。

115 名前:デフォルトの名無しさん mailto:sage [2010/09/03(金) 23:00:26 ]
((\d+)(?:,|))*
ただのカンマ区切りならboost::tokenizerじゃだめなの?

116 名前:デフォルトの名無しさん mailto:sage [2010/09/04(土) 20:16:45 ]
1.44ってVC10とかのmove semanticsに対応してる?

117 名前:デフォルトの名無しさん mailto:sage [2010/09/06(月) 10:13:54 ]
CSVはきっちりやるなら一文字ずつチェックしていくしかないだろ。
ダブルクォートの処理とかマジめんどい

118 名前:デフォルトの名無しさん mailto:sage [2010/09/06(月) 23:34:29 ]
Boost.Polygon早速仕事で使ってみてる。
なかなかいい感じ。

でもまだ機能が少ないな。
他の表現法からの取り込み対応も必要だ。

119 名前:デフォルトの名無しさん [2010/09/07(火) 14:20:33 ]
多角形の頂点管理でもしてくれるライブラリかい?



120 名前:デフォルトの名無しさん mailto:sage [2010/09/07(火) 14:44:58 ]
>>119
点とか矩形みたいな基本図形もある

121 名前:デフォルトの名無しさん mailto:sage [2010/09/07(火) 14:55:09 ]
3次元のポリゴン・メッシュを管理してくれるのなら使い道もあるのだが。

122 名前:デフォルトの名無しさん mailto:sage [2010/09/09(木) 22:50:01 ]
boost.interprocessってメモリアライメントを考慮してくれるんだろうか?
例えば、Win上で64bitアプリとWOW64で動いてる32bitアプリ間で
相互通信する場合はやっぱboost.mpiじゃないと駄目?

123 名前:デフォルトの名無しさん mailto:sage [2010/09/12(日) 19:09:03 ]
>>114>>117
そこはほら、Boost.Spiritで


124 名前:デフォルトの名無しさん mailto:sage [2010/09/12(日) 22:15:08 ]
>>123
いまいち使い方わかってないんだが、ググってみたらCSVのパースも
シンプルな式になるもんだな・・・
面白そうだから今度やってみよう。
教えてくれてトン。

125 名前:デフォルトの名無しさん mailto:sage [2010/09/15(水) 14:59:21 ]
foo-baa.cpp
ってファイル名使いたい
でもboostではfoo_baa.cpp
なんだよね
FreeBSDのxtermだと _ 消えて見えないから見にくい

126 名前:デフォルトの名無しさん mailto:sage [2010/09/15(水) 21:55:24 ]
>>91
boostpro からも1.44のインストーラが出てますね。

www.boostpro.com/download/

127 名前:デフォルトの名無しさん mailto:sage [2010/09/19(日) 14:37:09 ]
Boost.Logって1.45から?
つうかreview scheduleにLoggingもあるんだけど
やつ間接的にLogに殺されたということなのか

Loggingは犠牲になったのか…

128 名前:デフォルトの名無しさん mailto:sage [2010/09/20(月) 16:01:06 ]
property_treeのini_parserってメモリ上の文字列に対して使える?

129 名前:デフォルトの名無しさん mailto:sage [2010/09/20(月) 18:06:31 ]
stream に対してなら使える。



130 名前:デフォルトの名無しさん mailto:sage [2010/09/20(月) 22:04:00 ]
>>129

string path = "C:\\test.ini"
istream stream( path );
property_tree::ptree tree;
read_ini( stream, tree );

これはいけるけど、

string test = "[test]\ntest=100"
istringstream stream( test );
property_tree::ptree tree;
read_ini( stream, tree );

これはエラーが出る。何か間違ってるかな

131 名前:デフォルトの名無しさん mailto:sage [2010/09/21(火) 01:36:25 ]
stringstreamのヘッダがインクルードされていないとかってオチ
…はないかw

132 名前:デフォルトの名無しさん mailto:sage [2010/09/21(火) 04:18:26 ]
>>130
試してみたけど、PHOENIX_LIMIT のコンパイルエラー以外は普通に通ったぞ(Boost 1.44 + VC9)
とりあえずエラーの内容と環境貼れよ。

133 名前:デフォルトの名無しさん mailto:sage [2010/09/21(火) 21:19:18 ]
>>132
すまん、勘違いしていたようだorz
しょーもないミスをしていた。自己解決したんでスルーしてください

134 名前:デフォルトの名無しさん mailto:sage [2010/09/22(水) 03:47:30 BE:2161145298-2BP(0)]
boost::polygonってlong long使えないのか。
std::abs(long long)が無いってエラーになる。

135 名前:デフォルトの名無しさん mailto:sage [2010/09/22(水) 03:51:58 ]
int64_t

136 名前:デフォルトの名無しさん mailto:sage [2010/09/22(水) 04:56:31 BE:1050557257-2BP(0)]
そっちでも同じっぽい。
std::abs(int64_t)もstd::abs(__int64)も無い。

137 名前:デフォルトの名無しさん mailto:sage [2010/09/22(水) 12:29:35 ]
long longが規格に入るのはC99/C++0xからだからしょうがない

138 名前:デフォルトの名無しさん mailto:sage [2010/09/22(水) 15:34:54 ]
テンプレートで実装してなかったのは何か理由があるのか?

139 名前:デフォルトの名無しさん mailto:sage [2010/09/24(金) 13:46:51 ]
ストリーム暗号を作っているのですが、手動でやると復号できるのに
プログラムでやろうとするとうまくいきません。2回同じ暗号化を
すれば元に戻るはずなのにそうなりません。
出来ればコマンドラインで暗号化復号化の選択ができるようにしたいです。
初心者でよくわからないことが多いのですがよろしくお願いします。

if (argc < 2) { printf("error\n"); return 1;}
sprintf(fin, "%.255s", argv[1]);
sprintf(fout, "%.250s.perm", argv[1]);

if(d==0){
fp=fopen("2.perm","wb");
fq=fopen("2","rb");
}else{
fp=fopen("2.txt","wb");
fq=fopen("2.perm","rb");
暗号化するときに
fp=fopen(fout,"wb");
fq=fopen(fin,"rb");
とするのはいいのですが、復号のときに暗号化されたファイルを
読み込んで処理しても復号できない。
何のデータにばけているのかわかりません。



140 名前:デフォルトの名無しさん mailto:sage [2010/09/24(金) 13:50:31 ]
boostといったいなんの関係があるんだ

141 名前:デフォルトの名無しさん mailto:sage [2010/09/24(金) 14:07:47 ]
マルチーズ

142 名前:デフォルトの名無しさん mailto:sage [2010/09/24(金) 15:35:38 ]
>>140
そこに気付くとは・・・やはり天才・・・

143 名前:デフォルトの名無しさん mailto:sage [2010/09/24(金) 18:05:29 ]
VC++10において、BOOST_TYPEOF(hoge)とdecltype(hoge)は等価になると思っていいんでしょうか?

144 名前:デフォルトの名無しさん mailto:sage [2010/09/24(金) 19:49:20 ]
VC10のdecltypeは、コンパイラがクラッシュする致命的なバグがあるとか。

145 名前:デフォルトの名無しさん mailto:sage [2010/09/24(金) 20:04:26 ]
大丈夫だ、問題ない

146 名前:デフォルトの名無しさん mailto:sage [2010/09/24(金) 21:01:53 ]
>>144
コンパイラがクラッシュするって本格的だな。
でも実行時にクラッシュするよりはマシだと思うけど。


147 名前:デフォルトの名無しさん mailto:sage [2010/09/24(金) 23:02:26 ]
>>144
クラッシュしないように使えば問題ない

148 名前:デフォルトの名無しさん mailto:sage [2010/09/24(金) 23:21:10 ]
>>147
なぜMatz

149 名前:デフォルトの名無しさん mailto:sage [2010/09/25(土) 00:01:53 ]
なんでかしらんがdecltypeって文字の並びに一瞬もよおした・・
本能が何かを感じたようだ



150 名前:デフォルトの名無しさん mailto:sage [2010/09/25(土) 01:11:10 ]
Microsoft製品はSP1が出てから乗り換えるのが基本
本体の安定性もだが、OSだとサードのソフトが、VSだとプラグインやSDK類の対応がすぐには為されないからな

151 名前:デフォルトの名無しさん mailto:sage [2010/09/30(木) 21:40:06 ]
VC9で1_44 pythonの埋め込みを試しているのですが
メモリリークが発生してしまいます
↓のようなコードなのですがどこがおかしいんでしょう?

class Hoge {};

namespace bpy = boot::python;
BOOST_PYTHON_MODULE(Hoge){
bpy::class_<Hoge>("Hoge");
}

int main( int, char **)
{
PyImport_AppendInittab("Hoge", initHoge);
Py_Initialize();

bpy::object global_ns = bpy::import("__main__").attr("__dict__");
bpy::exec(
"from Hoge import *\n"
"h=Hoge()\n"
, global_ns , global_ns
);
Py_Finalize();

return 0;
}

同等のことをクラス(Hoge)ではなく、関数で行うとメモリリークは起きません

152 名前:デフォルトの名無しさん mailto:sage [2010/10/07(木) 16:17:32 ]
Macのgccっていろいろ変らしいのだけど
boostはちゃんと動くの?

153 名前:デフォルトの名無しさん mailto:sage [2010/10/07(木) 16:30:03 ]
Boost側が頑張ってるから大丈夫

154 名前:デフォルトの名無しさん mailto:sage [2010/10/13(水) 20:14:50 ]
variantってwitch()で型を判断するのダサくないですか?
なんかいい方法無いでしょうか

155 名前:デフォルトの名無しさん mailto:sage [2010/10/13(水) 20:19:55 ]
Visitor使え。

156 名前:デフォルトの名無しさん mailto:sage [2010/10/13(水) 20:26:10 ]
>>155
visitorとは何でしょうか?

157 名前:デフォルトの名無しさん mailto:sage [2010/10/13(水) 20:32:21 ]
ググレカス
www.kmonos.net/alang/boost/classes/variant.html
ここ見てもわからなかったら氏ね。

158 名前:デフォルトの名無しさん mailto:sage [2010/10/13(水) 20:37:35 ]
       ∧∧
       /⌒ヽ)  もはようちゃん
      i三 U   
     〜三 |
      (/~∪
    三三
  三三
三三

159 名前:デフォルトの名無しさん mailto:sage [2010/10/13(水) 20:56:27 ]
ファンクションオブジェクトを型ごとにつくればいいのか。。。



160 名前:デフォルトの名無しさん mailto:sage [2010/10/14(木) 01:18:45 ]
>>159
オブジェクトはひとつでいい。すべての型に対応するオーバーロードがあれば。

>>154
if (T* p = boost::get<T>(&v)) ... おすすめ。

161 名前:デフォルトの名無しさん mailto:sage [2010/10/14(木) 20:18:36 ]
autoでどうにかならないの?

162 名前:デフォルトの名無しさん mailto:sage [2010/10/15(金) 01:18:06 ]
>>161 何が?

163 名前:デフォルトの名無しさん mailto:sage [2010/10/23(土) 17:09:18 ]
spirit::classicのコードをメンテというか改造使用と思ってるんだけどこれを期にspirit v2に移るべきでしょうか?
機能追加するので全面書き直しOKという前提で。


164 名前:デフォルトの名無しさん mailto:sage [2010/10/23(土) 17:33:40 ]
V2ならパース結果をコンテナやタプルに格納する処理を超簡単に書ける。
Boost.Fusionとの連携もすごい。Boost.Qi も出始めと比べて安定して枯れてきてる。
Classic のコードを保守しなくていいなら乗り換えない理由はないと思う。

165 名前:デフォルトの名無しさん mailto:sage [2010/10/23(土) 18:28:44 ]
コンパイラの負担が阿呆ほど増えるけどな

166 名前:デフォルトの名無しさん mailto:sage [2010/10/23(土) 18:32:06 ]
Spirit 使ってる時点で既にコンパイル時間はboostしてるだろ。

167 名前:デフォルトの名無しさん mailto:sage [2010/10/23(土) 18:37:36 ]
>>164-165
わかった。乗り換えてみるよ。


168 名前:デフォルトの名無しさん mailto:sage [2010/10/28(木) 15:41:30 ]
sourceforgeのファイル一覧がひどいことになってるな
何のベンチマークだよこれ

169 名前:デフォルトの名無しさん mailto:sage [2010/10/31(日) 13:12:33 ]
boostを使用してだいぶ開発が進んだ頃に以下のエラーが出るようになりました

1>d:\sdk\boost_1_44_0\boost\type_traits\detail\is_mem_fun_pointer_tester.hpp(1526): error C2061: 構文エラー : 識別子 'clasw'
1>d:\sdk\boost_1_44_0\boost\type_traits\detail\is_mem_fun_pointer_tester.hpp(1527): error C2365: 'boost::type_traits::is_mem_fun_pointer_tester' : 再定義; 以前の定義は '関数' でした。
1>d:\sdk\boost_1_44_0\boost\type_traits\detail\is_mem_fun_pointer_tester.hpp(1527): error C2998: 'boost::type_traits::yes_type boost::type_traits::is_mem_fun_pointer_tester' : テンプレート定義にはなれません。

リビルドしてもこのエラーが出ることもあるしでないこともあるし、出現位置もバラバラで全く原因がわかりません
上記ファイルを使用する機能や上記エラー内容が分かれば教えてください



170 名前:デフォルトの名無しさん mailto:sage [2010/10/31(日) 13:31:52 ]
claswこれなんだ

171 名前:デフォルトの名無しさん mailto:sage [2010/10/31(日) 13:33:44 ]
わからないです。そんなもの見つからないし、そんなコードがあったら毎回エラーになるはずですよね・・・

172 名前:デフォルトの名無しさん mailto:sage [2010/10/31(日) 13:34:51 ]
とりあえず boost/function.hpp 使ってるところをすべてコメントアウトしたら出なくなったかも

173 名前:デフォルトの名無しさん mailto:sage [2010/10/31(日) 13:37:17 ]
と思ったら21回目のリビルドででました・・・

174 名前:デフォルトの名無しさん mailto:sage [2010/10/31(日) 13:39:43 ]
ちなみにIDEはVisualStudio2010Express
x86ターゲット、デバッグビルド
CPUはCore2Duoです

175 名前:デフォルトの名無しさん mailto:sage [2010/10/31(日) 13:42:54 ]
とりあえずエラーになってしまったオブジェクトも再ビルドすれば普通に通るので、何度がビルドすれば実行ファイルはできます

コンパイラのバグかな?

176 名前:デフォルトの名無しさん mailto:sage [2010/10/31(日) 13:55:44 ]
ディスクが壊れてるんじゃね?

177 名前:デフォルトの名無しさん mailto:sage [2010/10/31(日) 17:10:56 ]
>>174
VC10なら使える人が多いんだから、エラーの出るソース晒してみそ

ビルドのやり直しで通るなら、簡易ビルドをOFFにしてみるてがある。

178 名前:デフォルトの名無しさん mailto:sage [2010/10/31(日) 20:35:59 ]
念のためだけど、Debug フォルダ全消しはしてみたよね?

179 名前:デフォルトの名無しさん mailto:sage [2010/10/31(日) 22:18:47 ]
>>176-178

レスありがとうございます

boostのディレクトリを丸々コピー→古いのを削除→新しいのをリネームしたら出なくなったっぽいです。
ディスク障害だったのかな・・・しばらく様子を見てみます



180 名前:デフォルトの名無しさん mailto:sage [2010/11/01(月) 15:21:45 ]
昔はc++を喜んで使ってたが
lisp使うようになってからは
lispでデバックしてc++は自動生成するだけだわ
それにしてもc++の案件多いなあ

181 名前:デフォルトの名無しさん mailto:sage [2010/11/01(月) 15:25:02 ]
>>180
最近のlispはC++にコンバートできるんだ?
Cへのコンバートなら良く見かけるんだけど・・・。

あとSchemeで実用レベルのCorC++コンバーターとかあります?






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<198KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef