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


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

C++相談室 part69



1 名前:デフォルトの名無しさん mailto:sage [2009/05/04(月) 21:04:54 ]
C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレに
お願いします。

前スレ
C++相談室 part66
pc12.2ch.net/test/read.cgi/tech/1231640498/

※part63, part66 が重複していたようですので part69 としました。

175 名前:デフォルトの名無しさん mailto:sage [2009/05/13(水) 21:47:28 ]
わざわざしなくていいと思うよ
意識せずとも、いずれ自然に必要になって自然に勉強してる

176 名前:174 mailto:sage [2009/05/13(水) 21:52:03 ]
>>175
ほほう、そんなもんなのか。ありがとう。
むしろもうちょっと高級言語も知っとこうかなぁ。。。

177 名前:デフォルトの名無しさん mailto:sage [2009/05/13(水) 23:27:37 ]
C/C++をやると平気でインラインアセンブラを書くようになるよな
特にSSE2/SSE3関連は

178 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 00:48:26 ]
>>171,172
クラスの関連が複雑になるのと、オブジェクトの寿命管理の点が気になりました。

> 履歴一覧を表示する元に戻すボタンでも実装するのか?
これも1つです。
ソースの見通しが悪くなり、あとで機能を追加したいと思った時に困るのではないかと思いました。

179 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 01:13:32 ]
ササビーってIntelから出るけどあれどうなの?

180 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 01:53:25 ]
俺、趣味でオセロプログラム書いてるけど、>>177みたいなことに手を出してみた。
最初は難しいイメージがあったが、やってみるとそうでもなかった。

181 名前:デフォルトの名無しさん [2009/05/14(木) 02:25:47 ]
0から1の乱数を表示させるプログラムがほしいんですがわかる人いますか?
調べてみてはいるのですが、なかなかうまく動きません。
乱数生成のためのソフトとかはいるのでしょうか?

もしお暇がありましたらよろしくおねがいします。


182 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 02:30:59 ]
>>181
今、どれくらいの知識を持ってるの? どんなコード書いてみたの?
とりあえず、標準Cライブラリの rand っていう関数は知ってる?

183 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 02:31:35 ]
double r;
srand((unsigned int)time(0));
r = rand() / RAND_MAX;
printf("%lf", r);



184 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 02:44:00 ]
static_cast<double>(rand()) / RAND_MAX;だろとツッコミがほしいんだろ

185 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 02:54:43 ]
>>183
きっと0か1しか返さないぞ。

>>178
>ボタンが親子関係でもないオブジェクトの参照を持つ
ここでいってるオブジェクトってコマンドクラスのこと?
同じボタンの機能がころころ変化するのでもなければ
参照を持つ必要なんて無いと思うけど?
どうしてもUIにヘルプ文字列を埋め込みたくないのなら
コントロールクラスに自分(ボタン)が今どんな機能なのか
問い合わせるメソッドでも作ったら?


186 名前:デフォルトの名無しさん [2009/05/14(木) 03:34:01 ]
>>182
rand関数はさっきから学びはじめたばかりです。
知識は基本的なプログラムならつくれる程度です。

187 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 03:38:42 ]
randは本格用途では使い物にならんぞ
ゲームのサイコロ振るくらいに使うならいいけど

188 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 03:40:12 ]
>>186
rand関数は、0 から RAND_MAX までの範囲の整数を返す。
(RAND_MAX は実際にはある特定の数値であり、コード中に RAND_MAX と書けばその数値として扱われる)

後は、0 から RAND_MAX までの範囲の整数を、0 から 1 までの間の小数の値に変換すればよい。
>>183-185あたりを参考に。まだ分からんところがあったら聞いてくれ。

もし本格的な乱数を使用したいなら、boostのrandomってのを調べてみるといいが、
まあそこまでする気がないならrandでいいよ。

189 名前:デフォルトの名無しさん [2009/05/14(木) 03:43:14 ]
>>187
本格用途ではなくごく簡単なプログラムで、サイコロを振る程度です。

>>188
rand関数について自分でも調べていたところです。
丁寧におしえていただきありがとうございます。
もしわからないことがあったら書き込みたいと思います。
ありがとうございました!

190 名前:189 [2009/05/14(木) 04:34:11 ]
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(void)
{
double random;

srand((unsigned) time(NULL)); // rand関数による乱数生成を不規則にする
for(int i=0; i<20; i++){
random = (double)rand()/RAND_MAX; // 0から1までの乱数の生成
printf("%f\n",random); // 表示する
}
}

ここでのアドバイスなどをもとにして自分でつくりました。
コメントは自分でつけたので語弊があるかもしれません。


191 名前:189 [2009/05/14(木) 05:08:06 ]
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(void)
{
double random;

srand((unsigned) time(NULL)); // rand関数による乱数生成を不規則にする
for(int i=0; i<20; i++){
random = (double)rand()/RAND_MAX; // 0から1までの乱数の生成
printf("%f\n",random); // 表示する
}
}

ここでのアドバイスなどをもとにして自分でつくりました。
コメントは自分でつけたので語弊があるかもしれません。


192 名前:189 [2009/05/14(木) 05:11:06 ]
すみません一つはまちがいです。

上のプログラムだと乱数表示はされるのですが
一個だけ乱数表示するプログラムを実行すると、何度実行してもほとんど変わらない乱数
(例えば、0.963742 ⇒0.972378 ⇒0.981201など)
になってしまいます。

良い解決方法はないでしょうか?

193 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 05:37:58 ]
win32環境ならtime()をGetTickCount()なりQueryPerformanceCounter()なりで置き換えるとか。



194 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 06:28:58 ]
>>185
> ここでいってるオブジェクトってコマンドクラスのこと?
> 同じボタンの機能がころころ変化するのでもなければ
> 参照を持つ必要なんて無いと思うけど?
ヘルプメッセージを表示するクラスのメンバ関数をboost::functionに入れてボタンクラスに渡すという意味です。
Clickなど他のイベントも同様に「他のクラスのメンバ関数をboost::functionに入れて〜」とやっていったらクラスの関連が複雑になるのではないのかと。
また、boost::functionの中で保持されているポインタの寿命(有効か)の不安を感じます。

195 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 06:33:38 ]
random = (double)rand()/(RAND_MAX+1.0); // に、しとけ。

196 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 07:42:43 ]
struct A{virtual void operator()()=0;};
struct B:A{virtual int operator()(int)=0;};
struct C{A&x;C(A&a):x(a){} int operator()(int i){return static_cast<B&>(x)(i);}};
struct D:A{void operator()(){}} d;

int f(){
C c(d);
c();
return c(1u); // これ・・・
}
コンパイルを通ってしまわない様にするにはどう改造すればいいのでしょう?

197 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 08:01:28 ]
>>196
コンパイルが通らないようにする方法ならいくらでもわるわけで、
何がしたいのか挙げてもらわないと望む答えは得られないでしょう。

198 名前:196 mailto:sage [2009/05/14(木) 08:10:12 ]
void operator()(){x();} を書き忘れ
struct C{A&x;C(A&a):x(a){} int operator()(int i){return static_cast<B&>(x)(i);} void operator()(){x();}};

199 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 09:03:46 ]
>>195
なんのために+1.0するの?

200 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 09:06:17 ]
>>199
結果に整数 N をかけることで、簡単に N とおりの選択に使う乱数が得られる。
「0 から 1 の乱数」が 1.0 を含んでいると、こうはいかない。

201 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 09:12:53 ]
>>200
今回の目的は
「0から1の乱数を表示させる」
だけど、いいの?

202 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 09:20:22 ]
>>201
日本語だけでは閉区間なのか開区間なのか、区別がつかないんで、
質問者に判別してもらうしかないな。

簡単なサイコロの用途であれば 200 の性質が役に立つはずなんだけど。

203 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 09:22:50 ]
簡単なサイコロの用途であれば、
random = rand()%6; // で、十分。



204 名前:189 [2009/05/14(木) 11:12:04 ]
>>193
「GetTickCount()識別子が見つかりませんでした」とでます。
変数として扱われているのですかね・・・
他のプログラムをみてみたのですが使い方がわかりません
勉強不足ですよねスミマセン

>>195
お返事ありがとうございます
プログラムの下から4行目のことですよね?
してみたのですがほとんど値がかわりませんでした
何かまちがっているでしょうか

205 名前:189 [2009/05/14(木) 11:13:50 ]
>>193
「GetTickCount()識別子が見つかりませんでした」とでます。
変数として扱われているのですかね・・・
他のプログラムをみてみたのですが使い方がわかりません
勉強不足ですよねスミマセン

>>195
お返事ありがとうございます
プログラムの下から4行目のことですよね?
してみたのですがほとんど値がかわりませんでした
何かまちがっているでしょうか


206 名前:189 [2009/05/14(木) 12:43:26 ]
>>193
GetTickCount()は識別子が定義されてませんとでてしまいます
変数としてあつかわれてしまっているようです

>>195
お返事ありがとうございます
1を足したのですがあまり乱数はかわらなかったのですが
何かまちがっているのでしょうか

207 名前:195 mailto:sage [2009/05/14(木) 12:45:45 ]
コンパイラは Borland だろ。

208 名前:189 [2009/05/14(木) 12:49:10 ]
>>193
GetTickCount()は識別子が定義されてませんとでてしまいます
変数としてあつかわれてしまっているようです

>>195
お返事ありがとうございます
1を足したのですがあまり乱数はかわらなかったのですが
何かまちがっているのでしょうか

209 名前:189 [2009/05/14(木) 12:51:07 ]
すみません何度もかきこんでしまいました

210 名前:189 [2009/05/14(木) 12:55:04 ]
>>202
[0,1)区間となっています。0以上1未満ということです。
サイコロの乱数程度といってしまいましたが
サイコロは関係ありません

211 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 13:25:26 ]
>>208
windows.hをインクルードしてないとか言うなよ

212 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 13:29:26 ]
だって、それを書けなんて誰も言ってないじゃないですか。

213 名前:189 [2009/05/14(木) 13:30:44 ]
>>211
ご指摘ありがとうございます。
してませんでした。



214 名前:195 mailto:sage [2009/05/14(木) 13:41:16 ]
>>212 コンパイラの名前とバージョンは?

215 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 23:50:55 ]
すごく初歩的な質問ですが、C++で数字の小数点以下を
繰り上げるには何をつけたらいいんですか?

216 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 23:53:45 ]
std::ceil()だろ
Cにもある

217 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 23:55:09 ]
つceil

218 名前:デフォルトの名無しさん mailto:sage [2009/05/15(金) 00:16:28 ]
それは「切り上げ」じゃん。ちゃんと答えてやれよ
因みに俺は小数点以下の「繰り上げ」なる概念について知らないので答えられん

219 名前:デフォルトの名無しさん mailto:sage [2009/05/15(金) 00:17:50 ]
くだらねえ…

220 名前:215 mailto:sage [2009/05/15(金) 00:21:12 ]
おかげさまで解決しました。どうもありがとうございましたm(_ _)m

221 名前:デフォルトの名無しさん mailto:sage [2009/05/15(金) 00:25:23 ]
ちなみにceil()は負の数は0から離れる方向になるからな

222 名前:デフォルトの名無しさん mailto:sage [2009/05/15(金) 09:52:02 ]
>>203
それって偏りが出るよね。

223 名前:デフォルトの名無しさん mailto:sage [2009/05/15(金) 10:02:11 ]
RAND_MAXが極端に小さい環境ならね。
32767程度あれば、5461回が5462回になる程度のばらつきだよ。



224 名前:デフォルトの名無しさん [2009/05/15(金) 10:22:09 ]
マジで⁉

225 名前:デフォルトの名無しさん mailto:sage [2009/05/15(金) 10:23:33 ]
>>222
サイコロに偏りが無いとでも?

226 名前:デフォルトの名無しさん mailto:sage [2009/05/15(金) 10:45:40 ]
線型合同法は下位ビットの周期性が

227 名前:デフォルトの名無しさん [2009/05/15(金) 12:14:07 ]
テンプレートのテクニックをまとめた、テンプレートの著書を教えてください。
知っているのは、modern C++ と、テンプレートテクニックという本です。

良いサイトや良い本の情報ください。

228 名前:デフォルトの名無しさん mailto:sage [2009/05/15(金) 12:26:08 ]
C++ Template Metaprogramming: Concepts, Tools, And Techniques From Boost And Beyond

229 名前:デフォルトの名無しさん mailto:sage [2009/05/15(金) 12:53:18 ]
マウスでいまクリック、もしくはドラッグしているファイルやディレクトリのパスを
取得する方法ってありますか?常駐ソフトのような形で、起動してからクリック、ドラッグ
したファイルのパスをテキストログとして、出力するようなものを作りたいのですが・・・。

230 名前:デフォルトの名無しさん mailto:sage [2009/05/15(金) 12:56:30 ]
なんでこっちに来たんですか?

231 名前:デフォルトの名無しさん mailto:sage [2009/05/15(金) 13:00:38 ]
>>226
そんな乱数でもない数列をrand()という名前の関数の出力にする処理系が悪い。
ゴミだから早急に廃棄しろ。

232 名前:デフォルトの名無しさん mailto:sage [2009/05/15(金) 13:39:39 ]
>>225
製作工程の都合で、1,6の面積が微妙に大きいという話しか?
それとも、くりぬかれた目による重心のずれ、密度の偏りの方か?

233 名前:デフォルトの名無しさん [2009/05/15(金) 13:55:52 ]
>>228
ありがとうございます。
翻訳出てないんですかね……残念です。

C++の一番の特徴であるテンプレート関係の本が少ないのは何故?
わかりやすくテクニックを知りたいのに



234 名前:デフォルトの名無しさん [2009/05/15(金) 15:54:15 ]
すみませぬ JAVAから入っていまC++を勉強し始めたのですが、
C++で、配列で宣言した変数は、跡になってから自らがいくつの要素を持つ配列なのかチェックする方法ってありますか?


Javaだと、
String str[] = new String[3]
のように宣言した場合、
str.length を見れば要素数を見ることができますが、C++の場合は方法ありますか?

235 名前:デフォルトの名無しさん mailto:sage [2009/05/15(金) 15:56:52 ]
>>234
ないから素直にstd::vector使っとけ

236 名前:デフォルトの名無しさん mailto:sage [2009/05/15(金) 15:57:32 ]
>>234
sizeof(str) / sizeof(str[0]) で自分は調べてる

237 名前:デフォルトの名無しさん mailto:sage [2009/05/15(金) 15:58:40 ]
>>236
アホか

238 名前:デフォルトの名無しさん mailto:sage [2009/05/15(金) 16:03:46 ]
え?駄目なの
俺も>>236を常用してるけど・・

239 名前:デフォルトの名無しさん mailto:sage [2009/05/15(金) 16:07:00 ]
大丈夫、話が噛み合ってないだけだ。
char * foo = new char[3];
した場合は要素数を知る手段はない。
char foo[] = "abc";
した場合は要素数(≠文字数)を>236で得られる。

240 名前:234 [2009/05/15(金) 16:20:29 ]
ありがとうございます。
C言語の場合、
配列を作ったら作りっぱなし、メモリのどこまでがその配列に割り当てられた場所かという情報はどこにもないという認識で良いですか?

たとえば10要素の配列を作ったあとに20番目の要素にアクセスしようとすると、JAVAだとぬるぽが出て教えてくれますが、
Cの場合はシステムから見てそれが分からずに、20番(に相当する場所)を読みに行ったり、書き込んでしまう という理解で良いですか?

241 名前:デフォルトの名無しさん mailto:sage [2009/05/15(金) 16:25:57 ]
良いです。
ちなみにここはC++のスレです。

242 名前:デフォルトの名無しさん mailto:sage [2009/05/15(金) 16:39:03 ]
>>240
そうです
運が良ければアプリ自体が吹っ飛んでくれますが運が悪いとそのままメモリ破壊して動き続けます
なのでJavaしかできない人が集まってC++案件とかやるととても楽しいことになります

243 名前:デフォルトの名無しさん mailto:sage [2009/05/15(金) 16:41:59 ]
そもそも、10要素の配列を作ったあとに20番目の要素にアクセスしようとするような奴は
「Javaしかできない人」ではなく、「Javaもできない人」



244 名前:デフォルトの名無しさん mailto:sage [2009/05/15(金) 16:47:00 ]
>>240
大きな勘違いをしている。
>配列を作ったら作りっぱなし、メモリのどこまでがその配列に割り当てられた場所かという情報はどこにもないという認識で良いですか?
配列は、>36でサイズを得ることができる。
つまり、newなんていう外道なモノを使わずに、(昔なつかしの)固定長配列を使うかstd::vectorを使えと言うことだ。

245 名前:デフォルトの名無しさん mailto:sage [2009/05/15(金) 20:48:50 ]
Cに配列なんてなかった

246 名前:デフォルトの名無しさん mailto:sage [2009/05/15(金) 21:16:41 ]
>>245
何??

247 名前:デフォルトの名無しさん mailto:sage [2009/05/15(金) 21:18:10 ]
何の話?

248 名前:デフォルトの名無しさん mailto:sage [2009/05/15(金) 21:19:50 ]
ついに狂ったか?

249 名前:デフォルトの名無しさん mailto:sage [2009/05/15(金) 21:22:37 ]
Cなんてなかった

250 名前:デフォルトの名無しさん mailto:sage [2009/05/15(金) 21:50:31 ]
コンピュータなんてなかった

251 名前:デフォルトの名無しさん mailto:sage [2009/05/15(金) 21:52:47 ]
平行世界とつながったな

252 名前:デフォルトの名無しさん mailto:sage [2009/05/15(金) 22:09:27 ]
仕事なんてなかった

253 名前:デフォルトの名無しさん mailto:sage [2009/05/16(土) 22:00:39 ]
ISOのC++の2003年の規格のJISは訳がひどいですね。
原文の構成もひどいけど。
規格をもっと読みやすくしたような、同じだけ詳しい本ってあるんでしょうか?



254 名前:デフォルトの名無しさん mailto:sage [2009/05/16(土) 22:06:55 ]
無いから我慢して読め

255 名前:デフォルトの名無しさん mailto:sage [2009/05/16(土) 22:15:03 ]
規格書の文章なんてどれもああいうもんだよ。
訳が酷いわけじゃない。

256 名前:デフォルトの名無しさん mailto:sage [2009/05/17(日) 01:01:57 ]
C++は規格自体がひどいから文章もひどくなる

257 名前:デフォルトの名無しさん mailto:sage [2009/05/17(日) 01:56:44 ]
C++の文法があまりに酷いもんで翻訳者もイライラしながら
訳してたんじゃないか?w

258 名前:デフォルトの名無しさん mailto:sage [2009/05/17(日) 02:35:49 ]
どのくらいメモリを使っているかという情報は型が持っているのだから
例えば、char[3] 型の最初の要素のアドレスをchar*型に代入したら
もうメモリサイズがわからなくなるのは当然といえば当然。
char[3] 型を char[3] 型に代入する分にはちゃんとサイズがわかる。

という感じかしら

259 名前:デフォルトの名無しさん mailto:sage [2009/05/17(日) 04:11:03 ]
変数の型も含めてすべてをクラスにってのがJava以降に導入されたもんだからね

260 名前:デフォルトの名無しさん mailto:sage [2009/05/17(日) 04:25:19 ]
それは別にJavaで初めてというわけじゃないだろ。


261 名前:デフォルトの名無しさん mailto:sage [2009/05/17(日) 08:18:01 ]
Javaも全てがクラスというわけでもないし。

262 名前:デフォルトの名無しさん mailto:sage [2009/05/17(日) 08:57:46 ]
全てがクラスになる


unlambdaやれば全てが関数だからオススメ。

263 名前:デフォルトの名無しさん mailto:sage [2009/05/17(日) 09:49:55 ]
C++の一行の文字数って標準仕様上、制限ありますか?
またあるとして、現実的に気にした方が良いですか?




264 名前:デフォルトの名無しさん mailto:sage [2009/05/17(日) 10:53:44 ]
>>263
言語仕様としてはメモリの許す限りおk

265 名前:デフォルトの名無しさん mailto:sage [2009/05/17(日) 10:56:29 ]
メモリの許す限りという制限すらない無制限

266 名前:デフォルトの名無しさん mailto:sage [2009/05/17(日) 11:16:18 ]
ありがとうございます。
じゃあ気にせず行きます!

267 名前:デフォルトの名無しさん mailto:sage [2009/05/17(日) 11:29:51 ]
80文字が一つの目安だな。
120文字超えてたらちょっとイラッとする。

268 名前:デフォルトの名無しさん mailto:sage [2009/05/17(日) 11:32:26 ]
クラスのメンバ関数の返り値は
コピー返しでも可能ならconstにしろ

とEffective C++で言われていましたが、
なぜか返り値がbool型だけはconst付けない風習がありません?
例: bool is_valid() const {return member?true:false;}
この場合も返り値にconst付けた方が良いのでしょうか?

269 名前:デフォルトの名無しさん [2009/05/17(日) 11:34:17 ]
付けた方がいいよ。

270 名前:デフォルトの名無しさん mailto:sage [2009/05/17(日) 11:54:31 ]
>>268
メリットはなに?

271 名前:268 mailto:sage [2009/05/17(日) 11:58:07 ]
>>269
そうですよね。ありがとうございます。

>>270
組み込み型の返り値を万が一変更するバカが居た場合の予防です。

272 名前:デフォルトの名無しさん mailto:sage [2009/05/17(日) 12:12:37 ]
>組み込み型の返り値を万が一変更する
なんてできません。

馬鹿って言う人が馬鹿なんだぞw
ちゃんと読もうぜ。

273 名前:デフォルトの名無しさん mailto:sage [2009/05/17(日) 12:25:20 ]
メリットは記述の統一感かな?
テンプレート引数にするときにいいことってある?

自分は組み込み型にはconst付けない派だな



274 名前:デフォルトの名無しさん mailto:sage [2009/05/17(日) 12:34:53 ]
それ書いてあるのってEffecitve C++だっけ? Exceptionalかなんかのほうだった気がするが。

275 名前:デフォルトの名無しさん mailto:sage [2009/05/17(日) 12:35:35 ]
> テンプレート引数にするときにいいことってある?
全くない。

むしろ
組み込み型戻り値のconstは
環境によってはwarningやerrorになるから
うっとうしいことこの上ない。









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

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

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