[表示 : 全て 最新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/

18 名前:デフォルトの名無しさん mailto:sage [2010/06/09(水) 07:26:59 ]
そうですね。A,B,CとX,Y,Z,Wの間には関係がないです。
B,CをもとにA、Y,Z,WをもとにZをそれぞれ定義したいという感じです。

19 名前:デフォルトの名無しさん mailto:sage [2010/06/09(水) 19:48:55 ]
>>15
ublas使うなら ttp://d.hatena.ne.jp/blono/archiveを1から読むといいよ
15が聞きたいことも頻繁にやってる(projectとかsliceとか)

20 名前:デフォルトの名無しさん mailto:sage [2010/06/11(金) 01:06:06 ]
15です。
そのサイトは非常に参考にさせて貰ってます。

たぶんですけどsliceからのswapでいけるのかなぁ〜と考えてます。
ともかく色々試してみます。質問に答えてくれてありがとう。

21 名前:デフォルトの名無しさん mailto:sage [2010/06/12(土) 21:45:16 ]
ビルドしたライブラリ(.lib)の名前の後ろにつく文字列に、mtとmt-sという
2種類のものがあるのですが、どのような違いがあるのでしょうか?
mtというのは、VC++のランタイムライブラリ設定で"マルチスレッド"を
選んだからだと思うのですが、sという文字列の意味がわかりませんでした。
初歩的な質問かもしれないですが、教えてもらえるとうれしいです

22 名前:デフォルトの名無しさん mailto:sage [2010/06/12(土) 21:46:38 ]
static

23 名前:デフォルトの名無しさん mailto:sage [2010/06/12(土) 22:40:53 ]
www.boost.org/doc/libs/1_43_0/more/getting_started/windows.html#library-naming

24 名前:デフォルトの名無しさん mailto:sage [2010/06/17(木) 00:54:23 ]
>>21
VC++のランタイムライブラリ設定でいうなら
マルチスレッド libboost_…-mt-s
マルチスレッド デバッグ libboost_…-mt-sgd
マルチスレッド DLL libboost_…-mt
マルチスレッド デバッグ DLL libboost_…-mt-gd

ただし、このDLLというのはCランタイムのDLLのことなので
BOOST C++ ライブラリをDLLで使いたい人のために
boost_で始まるlib/dllも出力されるので
bjam toolset=msvc-10.0 --build-type=complete stage
すると5.8GBにもなるという

25 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 20:29:21 ]
weak_ptrってshared_ptrが無効かどうか知る場合に使えばいいですか?



26 名前:デフォルトの名無しさん mailto:sage [2010/06/21(月) 20:31:26 ]
>>25マルチすんな



27 名前:デフォルトの名無しさん [2010/06/21(月) 21:29:27 ]
何が悪いんだよ
おまえ goto 有害説にしか見えないぜ

28 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 08:39:32 ]
>>25
いいえ

29 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 10:58:33 ]
>>26
ごめんなさい・・・
スルーされたもんで

30 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 15:50:16 ]
>>29
そんな言い訳が通用したらマルチは存在しない。
常識で考えればちゃんと取り下げてから来いよ。


31 名前:デフォルトの名無しさん mailto:sage [2010/06/22(火) 21:52:41 ]
>>25
できるけど、普通shared_ptrはコンストラクタで初期化するのだし
そういうコードが必要になるような設計に問題があると思う
if (p != NULL) {...} がバグの温床だからやめようというのと同じで
if (p.use_count()) {...} ってのも関心しない
検索してもなかなか出てこないのには好ましくないから
人に見せるような綺麗なプログラムにはあまり出てこないという背景がある

32 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 18:26:38 ]
p.use_count() はともかく

if (shared_ptr<Hoge> p = wp.lock()) {
...
}

あたりはかなり典型的かつ有用な idiom のような?

33 名前:デフォルトの名無しさん mailto:sage [2010/06/23(水) 20:36:20 ]
ブーリアンコンテキストでチェックするのは普通でしょ
そのためにsafe boolが定義されてるんだから

use_count()はデバッグやテストのためであって
製品版では使うなとドキュメントに書いてあったはず

34 名前:デフォルトの名無しさん [2010/07/02(金) 17:48:50 ]
へえ

35 名前:デフォルトの名無しさん mailto:sage [2010/07/07(水) 10:17:00 ]
ublasって
純粋なCと速度はあんまり変わりないの?

他のboostもコンパイルに時間かかるだけで実行時間は純粋なCとあまり変わりないの?

36 名前:デフォルトの名無しさん mailto:sage [2010/07/07(水) 10:36:39 ]
純粋なCってなんだよ
この世には不純なCがあるのか?



37 名前:デフォルトの名無しさん mailto:sage [2010/07/07(水) 11:30:27 ]
全てはアセンブリ言語に変換・・・アセンブルされ、リンクし、バイナリは天に召される。
動けわがプログラムよ!

38 名前:デフォルトの名無しさん mailto:sage [2010/07/07(水) 11:53:17 ]
天に召されたらうごかないんじゃね

39 名前:デフォルトの名無しさん mailto:sage [2010/07/07(水) 15:04:32 ]
天はCPUなり

40 名前:デフォルトの名無しさん mailto:sage [2010/07/07(水) 15:13:58 ]
三途のバスを越え、閻魔CPUの裁きが下るそのとき、
あなたの運命は定まるでしょう。

41 名前:デフォルトの名無しさん [2010/07/09(金) 10:47:13 ]
boost::regex hosii("hoge ?\(");//boost::reg_expression<char> regex = 正規表現;にするとできない。
boost::match_results<const char*> results;//←もうこの辺から::を押しても出てこない
boost::regex_search(data, results,hoge);
fputs(results.str(0), wfp);←ここでエラー

boostが全然できません
error C2664: 'fputs' : 1 番目の引数を 'std::basic_string<_Elem,_Traits,_Ax>' から 'const char *' に変換できません。(新しい機能 ; ヘルプを参照)
1> with
1> [ _Elem=char,
1> _Traits=std::char_traits<char>,
1> _Ax=std::allocator<char>
1> ]
1> この変換を実行可能なユーザー定義変換演算子がないか、または演算子を呼び出せません。
キャストする

error C2440: '<function-style-cast>' : 'std::basic_string<_Elem,_Traits,_Ax>' から 'char' に変換できません。
1> with
1> [ _Elem=char,
1> _Traits=std::char_traits<char>,
1> _Ax=std::allocator<char>
1> ]
1> この変換を実行可能なユーザー定義変換演算子がないか、または演算子を呼び出せません。
助けてください
簡単にC++で正規表現できるんじゃないんですか?VC++2008EE notCLI 正規表現で文字列取得して配列に入れたいだけです。どうすれば良いのでしょうか?

42 名前:デフォルトの名無しさん mailto:sage [2010/07/09(金) 11:05:23 ]
エスケープシーケンス
std::string::c_str()
まずC++の基礎を何とかしてください。

43 名前:デフォルトの名無しさん [2010/07/09(金) 11:21:56 ]
ありがとうございます。一応コンパイル通りました
results.str(0).c_str()
こんなのがあるなんて全然知りませんでした。

44 名前:デフォルトの名無しさん [2010/07/09(金) 14:00:41 ]
詰みました
boost::regex hosii(" *hoge *\(");←ここで止まります。ハンドルされていない例外ですと
boost::match_results<const char*> result;
boost::regex_search(data, results,hosii);
fputs(results.str(0).c_str(), wfp);
何が間違ってるのでしょうか?
エスケープシーケンスが正しくないかもしれませんみたいな警告が出てましたが何か間違ってますか?

45 名前:デフォルトの名無しさん mailto:sage [2010/07/09(金) 14:08:24 ]
\→\\

46 名前:デフォルトの名無しさん [2010/07/09(金) 14:14:35 ]
>>45
ありがとうございました
一見\で\が文字化されそうですね



47 名前:デフォルトの名無しさん mailto:sage [2010/07/09(金) 14:54:13 ]
簡単さならxpressiveがヘッダファイルだけで済んで手軽
Static版の文法覚えちゃえば処理速度も期待できる
ただしコンパイル時間は延びる

48 名前:Regex mailto:sage [2010/07/10(土) 01:03:17 ]
ぼくもほめて(´;ω;`)

49 名前:progress_display mailto:sage [2010/07/10(土) 05:24:22 ]
まだまだ未熟だな。

50 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/10(土) 08:51:21 ]
ublasは中身替えられるから
ATLASなどを使えばSIMD対応で速いと聞く
ただATLASのコンパイルという壁が・・

51 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/10(土) 09:17:03 ]
regexはユーザーが入力した正規表現をそのまま渡しても平気かな?セキュリティーホールになったりしない?

52 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/10(土) 10:30:03 ]
Xpressive VC2008だと山のように警告が出る

53 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/10(土) 12:17:27 ]
そうか?型の整合性さえ取れれば何も言われないけどな
山のようにって言っても一部の警告がテンプレートの展開で連鎖してるんだろ

54 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/10(土) 23:54:14 ]
Boost.Xpressiveサイコー
でも標準入りを果たしたStd.Regexの汎用性には負ける。



55 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/11(日) 00:09:26 ]
RegexってインタプリタパターンとかDSLになるん?

56 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/11(日) 20:18:20 ]
Regexはインタープリタ
XpressiveはTMP、インタープリタ、両対応。



57 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/11(日) 22:54:07 ]
>>55
> インタプリタパターン
> DSL
って何?パターン?
よく知らないんだけど、正規表現の業界用語?


58 名前:名無しさん@そうだ選挙に行こう mailto:sage [2010/07/11(日) 23:01:35 ]
>>57
デザインパターン

59 名前:57 mailto:sage [2010/07/11(日) 23:49:52 ]
>>58
Gang of Fourのdesign patternのこと?
インタプリタパターンなんてあった記憶が無いんだけど。

…あったし!!ごめん!
Interpreter パターン - Wikipedia
ttp://ja.wikipedia.org/wiki/Interpreter_%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3



60 名前:デフォルトの名無しさん mailto:sage [2010/07/12(月) 08:01:49 ]
> DSL
Domain Specific Language
分野特化言語

61 名前:デフォルトの名無しさん mailto:sage [2010/07/12(月) 10:30:16 ]
>>60
ありがとう。


62 名前:デフォルトの名無しさん mailto:sage [2010/07/12(月) 19:46:25 ]
Interpreter パターンとか Visitor と Composite 組み合わせて ParseContext 作っただけにしか見えないわ

63 名前:デフォルトの名無しさん mailto:sage [2010/07/13(火) 20:33:35 ]
実装詳細を見てわかった気になるヤツって多いよね

64 名前:デフォルトの名無しさん [2010/07/17(土) 01:11:16 ]
mac osx 10.6 xcode 環境で boost のインクルードパスをシステムインクルードの検索パスに追加してビルドすると、

/Developer/SDKs/MacOSX10.6.sdk/usr/include/c++/4.2.1/i686-apple-darwin10/x86_64/bits/c++locale.h:80:0
/Developer/SDKs/MacOSX10.6.sdk/usr/include/c++/4.2.1/i686-apple-darwin10/x86_64/bits/c++locale.h:80:
error: 'vsnprintf' is not a member of 'std'

などと言われて、コンパイルできません。
osx内のSDKのヘッダとboost のそれが競合してる見たい何だけど、どうやれば解決できませすか。

65 名前:デフォルトの名無しさん [2010/07/17(土) 01:29:37 ]
誰か>>64の解決策教えてよ。友達いないんだ。さみしいの。

66 名前:デフォルトの名無しさん mailto:sage [2010/07/17(土) 06:20:17 ]
lists.apple.com/archives/carbon-dev/2006/Aug/msg00400.html
これか、違うか?



67 名前:デフォルトの名無しさん mailto:sage [2010/07/17(土) 23:47:39 ]
それっす。有り難う。

68 名前:デフォルトの名無しさん mailto:sage [2010/07/20(火) 11:55:02 ]
OSXと関係ないが、VC++は<c**>でincludeしてもstdにならないんだよな確か

69 名前:デフォルトの名無しさん mailto:sage [2010/07/20(火) 15:14:39 ]
>>68
標準関数はstdに入ってるよ
同時にグローバル名前空間にもぶちまかれるが

70 名前:デフォルトの名無しさん mailto:sage [2010/07/22(木) 11:56:17 ]
www.atmarkit.co.jp/news/200909/07/lltv02.html
boostより抽象度は高そうなんだが

71 名前:デフォルトの名無しさん mailto:sage [2010/07/22(木) 13:21:34 ]
>言語と戯れよう
プログラミング自体が目的になってる方は死んで下さい

72 名前:デフォルトの名無しさん mailto:sage [2010/07/22(木) 14:37:08 ]
VC++2010だと、BOOST_SCOPE_EXITとかBOOST_FOREACH使うとクラスビューの
関数解析結果がおかしくなるんだが・・・

73 名前:デフォルトの名無しさん mailto:sage [2010/07/22(木) 15:22:58 ]
>>71
MPLの変な文法おぼえるよりlisp覚えたほうが得
どうせ生成されるCは同じなんだし

多分、動く奴はこれ

homepage.mac.com/naoki.koguro/prog/dyncomp/index-j.html

74 名前:デフォルトの名無しさん mailto:sage [2010/07/22(木) 15:27:56 ]
どこの馬の骨ともしれぬジャップがでっち上げた俺ライブラリなぞ論外

75 名前:デフォルトの名無しさん [2010/07/22(木) 16:54:25 ]
そういわずに育ててやれよ

76 名前:デフォルトの名無しさん mailto:sage [2010/07/22(木) 17:47:33 ]
これってジェネレーラーはLispでかかれてるんかいな?
落としてみたけどS式書いてあるファイルがみつからんよ??



77 名前:デフォルトの名無しさん mailto:sage [2010/07/23(金) 02:56:10 ]
本当の本体はGaucheのソースの中らしい

78 名前:デフォルトの名無しさん mailto:sage [2010/07/23(金) 16:27:02 ]
Gaucheのソースを解凍
lib/cgen
の下

79 名前:デフォルトの名無しさん mailto:sage [2010/07/23(金) 16:28:51 ]
なるほど、サンキュ!

80 名前:デフォルトの名無しさん mailto:sage [2010/07/23(金) 16:37:18 ]
Gaucheソース
ext/uvector
のMakefile
に使用例

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早速仕事で使ってみてる。
なかなかいい感じ。

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






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

前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