Web上で見かけたんだけど class parent{ public: virtual void func( void ){ cout << "parent\n"; } }; class child: public parent{ public: virtual void func( void ){ cout << "child\n"; } }; void main() { child a; parent b; parent &c = ( true ) ? a : b; parent &d = a; c.func(); d.func(); } 結果 parent child はVC++6.0のバグ?
>>456 VC++6.0でこれだとどうなるの?
#include <iostream>
class parent{
int x;
public:
parent(int i):x(i){}
virtual void func(void){cout<<"parent "<<x<<"\n";}
};
class child:public parent{
public:
child(int i):parent(i){}
virtual void func(void){cout<<"child "<<x<<"\n";}
};
int main()
{
child a(1);
parent b(2);
parent&c=(true)?a:b;
parent&d=a;
c.func();
d.func();
}
いい加減VC++6.0は捨てろ。それにスレ違い。
459 :
デフォルトの名無しさん :03/10/26 15:55
スレ違いではありませんので458を無視してください
460 :
デフォルトの名無しさん :03/10/26 16:00
BCCでもそうだった。なんでなんで?
461 :
デフォルトの名無しさん :03/10/26 16:09
virtual関数の実装が別コンパイル単位(ファイル)だったら起きない問題か。
クラス宣言内に実装があるので、可能ならインライン展開しようとするから
そんときのクラスの選択がバグってると。
さすがに
>>457 の数字はちゃんと正しく(共に1が)出るんじゃないか。
VC6持ってる人検証キボン
参照だからじゃない
>>462 参照じゃなかったら文法違反だと思はれ。
464 :
デフォルトの名無しさん :03/10/26 16:26
465 :
デフォルトの名無しさん :03/10/26 16:33
vc6でやったよ。 xはprivateだからコンパイル通らんよ。 publicにしてさらに //parent&c=(true)?a:b; parent&c=a; にしたら直ったよ。
466 :
デフォルトの名無しさん :03/10/26 16:34
安心したければGCC使えということで
GCCかよ(笑
VC++6なんていう、ANSIC++以前のコンパイラが ANSIC++に対応してないっていう話はいい加減やめれ。 そんなの当たり前もいいところ。 それを鬼の首でもとったかのように喜んでるのはただの知的障害者。
>>468 規格制定前にその規格を満たす実装は存在していないという妄想の例
>457 > VC++6.0でこれだとどうなるの? parent 1 child 1 三項演算子は正しくaを返してます。 >461 念のため関数定義を別のファイルにまで持っていきましたが再現したので inlineは関係無いと思います いろいろ試してみた結果、三項の部分は、どうも parent &c = parent(( true ) ? a : b); こんな風に解釈されているっぽいです。 ちなみに参照をポインタに変えたら、当然?期待通りに動いてくれます。
471 :
デフォルトの名無しさん :03/10/26 17:32
>>470 コンストラクターの呼出し回数を数えてみるといいかも
あ、その場合は コピーコンストラクターを明示的に定義して その中でカウントするなり、coutに向かって何かを書くなり
ANSIC++はある日突然現われたのではなく長い年月の議論の末に生まれているから
ANSIC++が確定する以前であってもANSIC++の概要を知ることは可能。
ANSIC++が確定する以前に作られたVC++6が
ANSIC++に書かれてあることの全てに対応できていなくても部分的に対応できていれば、
どこまで対応できているのかについての議論は今でも意味がある。
その議論そのものの存在意義を否定することができるのは
VC++6がANSIC++に書かれてあること全てに対応していない
ということが明確である場合だけとなる。
>>468 てことでVC++6はANSIC++に書かれてあること全てに対応していない
と言いたいということでよろしいか?
そんな古いコンパイラの話せずにおとなしくBoost100%のVC++7.1を使えばいいよ
>>463 ポインターってこと
parent* c = ( true ) ? &a : &b;
>>470 ということは、ポインタでなく値が式の結果となる三項演算子は
両者の型が違うときは共通化できる型に変換し、変換されるほうは
一時オブジェクトを生成して返してるってことになるのか。
VC++7.1 を使いたいのは山々なんだけど、いろいろなしがらみから現実には まだまだ VC++6 をつかわにゃならんケースが多いんだろ。 実際問題、今現在でも VC++6 がもっとも使われている C++ コンパイラなんじゃないの?
478 :
デフォルトの名無しさん :03/10/26 17:54
481 :
デフォルトの名無しさん :03/10/26 18:11
VC++はまずいよ。 こういうコンパイラーのおかしな動きで システムに障害が出て 損害賠償請求されたらたまったもんじゃない。
>>482 馬具が必ず再現できるとは限らないよな
テスト至上主義には分からんか
>>483 まあそうだが、
コンパイラは規格に合致していることを契約しているわけではないので
従っていないことを理由に文句を付けることはできないよな。
コンパイラを選んだ時点で、現状のそのコンパイラの挙動に合わせて作る
しかない。
挙動を確認せずに間違って使ったほうが悪いんでは?
child a; parent b = a; が通ったんだけど・・・ もしかして漏れとんでもない勘違いしてる?
その前にポリモーフィズムと言ったら普通ポインターでは
virtual関数周りの動作は実際に動いてみるまで分からないから怖い。
>>456 のようなバグも
そのバグが発生しても日常的には問題がなくて気付かず、
珍しい条件が揃ってから初めて症状が出てくるようなシステムだと
動作確認で問題を見付けられないだろうな。
>>484 一般的に、コンパイラーを選ぶのも開発側の責任に含まれることが多いから、
コンパイラーのバグが原因であっても、そうでなくても、
すべてひっくるめて動作の不具合は開発側の責任になって
開発側の負担にて修正することになる。
契約によっては損害賠償もあるだろう。
>>490 人命に関わるバグだったりすると・・・ね
492 :
デフォルトの名無しさん :03/10/26 18:21
Windows上のシステムだと コンパイラーの不具合でシステムが挙動不審になる確率より、 先にOSが勝手に落ちてくれる確率が高いから気にしない文化あり。 Windows以外の環境だと VC++の選択はありえないのでこれまた問題ない。
>>492 別に開発環境のバグで起きたことについての損害賠償云々ってのはWindowsに限ったことではないんだが。
494 :
デフォルトの名無しさん :03/10/26 18:29
結局
>>456 のサンプルはVC++6でも7.1でも駄目なのか?
つーかVCの挙動が正しいんじゃないか?
497 :
デフォルトの名無しさん :03/10/26 18:38
VCが正しいとしても、constではない参照がテンポラリオブジェクトを指していることにならないか?
>>497 式'(true) ? a : b'の型はparent(parent &ではない)になるのが自然だと思われるから。
VC7.0だと これも void foo(parent &){} foo(parent()); これも parent &c = parent(a); コンパイル通るね。
Final Draftだから以後変わってるかもしれんが: 5.16 - Conditional operator [expr.cond] の-3-の3個目では if E1 and E2 have class type, (中略) If the conversion is applied, E1 is changed to an rvalue of type T2 that still refers to the original source class object (or the appropriate subobject thereof). [Note: that is, no copy is made. ] となってるみたいな。
>498 無名オブジェクトの、参照による延命ってやつ?では。 >499 (式) ? a : b; のaとbが同じ型の場合だと、テンポラリは作られなかった。から正しくない。
>>499 > 式'(true) ? a : b'の型はparent(parent &ではない)になるのが自然だと思われるから。
まったく不自然なんだが。
parent & x = (true) ? a : b;
で、aとbが共にchildクラスだった場合もここでテンポラリー生成が自然?
となると
parent & x = a;
の場合もテンポラリー生成が自然ということになる。
505 :
デフォルトの名無しさん :03/10/26 19:20
499がどのように感じても、VCの動きは規格的に間違いなので 「VCの挙動が正しい」という結論には繋がない
>>505 お前が作った規格で正しいと言われてもなぁ(藁
最終Draftだから以後変わってるかもしれんが:5.16 ―条件付きのオペレーター[expr.cond] の(3)の3個目ではE1とE2がクラス・タイプ(中略)を持っている場合、 転換が適用される場合、E1は、オリジナルの出所クラス・オブジェクト(あるいはそれの適切なサブオブジェクト)にまだ言及するタイプT2のrvalueに変更されます。[注:すなわち、コピーは作られません。]となってるみたいな。
511 :
デフォルトの名無しさん :03/10/26 19:50
>>507 502の規格を作った人が505なのか?
512 :
デフォルトの名無しさん :03/10/26 19:51
>>505 == ANSIC++規格作者
ということで
つーかVCが正しいでしょ。 間違っているという奴は間違っている証拠を出せないんだし。
ANSI C++ と VC++ の挙動が違うということは分かった。 しかし ANSI C++ が正しいという証拠はない。 ANSI C++ が間違いで VC++ が正しいこともある。
>>515 ちょっと違う。正式なANSI C++の規格自体出ていない。
ふざけんなてめーら。 わざわざDraftなんか持ち出して嘘つきやがって。 ISOだとVC++が正しいじゃねーかよ。 ― if E1 and E2 have class type, and the underlying class types are the same or one is a base class of the other: E1 can be converted to match E2 if the class of T2 is the same type as, or a base class of, the class of T1, and the cv-qualification of T2 is the same cv-qualification as, or a greater cv-qualification than, the cv-qualification of T1. If the conversion is applied, E1 is changed to an rvalue of type T2 that still refers to the original source class object (or the appropriate subobject thereof). [Note: that is, no copy is made. ]
518 :
デフォルトの名無しさん :03/10/26 20:07
てことはANSI C++が間違いなので、ていうか存在してないので、 VCが正しいのか
>>518 違う。Draft(草案)が変更になった。
どうやらM$叩きは失敗したようだ。
つーか、英語を読めないだけだろ。
524 :
デフォルトの名無しさん :03/10/26 20:11
>>517 君の出してくれたISOはVC++の間違いを示してくれてるよ
いくらBoost100%でもこんなに簡単な所で間違えてるようじゃVC++もまだまだだな。
なんでプログラマって英語も読めない馬鹿が多いの?
>>527 ふーん。そうやってアメリカのいいなりになるのか。
529 :
デフォルトの名無しさん :03/10/26 20:15
530 :
デフォルトの名無しさん :03/10/26 20:16
>>517 That is, That is, That is,
> If the conversion is applied,
> E1 is changed to an rvalue of type T2 that still refers to the original source class object
> (or the appropriate subobject thereof).
> [Note: that is, no copy is made. ]
no copy is made.
in other words,
refers to the original source class object.
VC++ made temporary object, in this case.
E1 is changed to an rvalue of type T2 E1 is changed to an rvalue of type T2 E1 is changed to an rvalue of type T2 E1 is changed to an rvalue of type T2 E1 is changed to an rvalue of type T2 E1 is changed to an rvalue of type T2 E1 is changed to an rvalue of type T2 E1 is changed to an rvalue of type T2 E1 is changed to an rvalue of type T2 つーかさ、ISOの記述が曖昧すぎるんだよ。
532 :
デフォルトの名無しさん :03/10/26 20:19
この件に関して VC++の動きとISO C++の規格が不一致であることはずっと明確であるのだが、 VC++が正しいと言ってる連中は VC++が正しくてISO C++が間違っていると言ってるわけだよな?
ISO/IEC 14882:2003ではMSの方が正しくなっているに違いない。
>>528 英語読めるだけでアメリカの言いなりだなんて。
お前は未だに敵国語は使うなの精神で生きているのか?(w
しかし低級2cherがISO/IEC 14882:2003を所持しているはずが無いので、 この問題は海の底へと消え去るのでした。
536 :
デフォルトの名無しさん :03/10/26 20:21
>>531 > E1 is changed to an rvalue of type T2
> E1 is changed to an rvalue of type T2
もしかしてその続きが読めない人?
>>532 > VC++の動きとISO C++の規格が不一致であることはずっと明確であるのだが、
そこが間違っている。
539 :
デフォルトの名無しさん :03/10/26 20:28
540 :
デフォルトの名無しさん :03/10/26 20:31
ISO C++ Draftによると、 コピーは作成されず元オブジェクトへの参照になると書かれている。 VC++の動作ではテンポラリーオブジェクトとしてコピーが作成されている。 確かにISO C++ Draft的にはVC++の動きが間違い
でドラフトがどうかしたのか? ドラフトが規格と全く同じだとでも?
542 :
デフォルトの名無しさん :03/10/26 20:36
いまだにVC++が正しいと信じて疑わない連中がいるようですが そいつらとしては 「VC++的にはISO C++が間違い」 という結論になってるんですよね?
>>542 だからドラフトが違うんだってば。いい加減にしろよ。
まあBoostでさえ100%取れないGCCはそれ未満だけどな。
ちなみにその部分はドラフトも正式規格も同じ
必死で正式版を隠しているのが笑える。
550 :
デフォルトの名無しさん :03/10/26 20:48
ISO C++を100%取れないVC++と Boostを100%取れないGCCの闘い ISO C++とBoost、どちらを選ぶ人が多いか
551 :
デフォルトの名無しさん :03/10/26 20:52
どっちを選ぶもなにも、 PC-UNIXならGCCしかないし、 WindowsならVC++しかないし Cコンパイラの選択肢なんて あってないようなものです
>>550 GCCもISOC++100%取れてないからBoost100%じゃないんだろ。
553 :
デフォルトの名無しさん :03/10/26 20:59
>>553 えっ? Boost100%じゃないのにISO C++100%だとでも?
555 :
デフォルトの名無しさん :03/10/26 21:03
>>552 いつから
「Boostが100%動けばISO C++100%」
というようになったんだ?
>>555 誰もそんなこと言って無いだろ。日本語読めないのか?
とりあえずここのレベル低い香具師らはexportも知らないんだろうな
558 :
デフォルトの名無しさん :03/10/26 21:09
>>556 「ISOC++100%取れてないならばBoost100%動作ではない」が真で
「Boost100%動作ではないならばISOC++100%取れてない」が偽ですか
560 :
デフォルトの名無しさん :03/10/26 21:14
VC++を必死で擁護する人って 対偶もしらないアフォばかりということでよろしい?
>>558 逆っぽそうだけどなあ。
BoostはISOの機能の一部を使って実装されているものだし。
0%-----------Boost100%-------------ISO% Boost 100%でもISO 100%にならないことはあるが、 Boost 100%になってないのにISO 100%になることはない。
0%-----------Boost100%-------------ISO100%
>>556 いや、言ってるよ
> GCCもISOC++100%取れてないからBoost100%じゃないんだろ。
というのは
Boost100%動いたらISOC++100%取れてると言ってるのと同じ意味
566 :
デフォルトの名無しさん :03/10/26 21:17
564さらしあげ
567 :
デフォルトの名無しさん :03/10/26 21:18
564は釣りだろ釣りw。ブハァ
568 :
デフォルトの名無しさん :03/10/26 21:18
「AでないならばBでない」というのは 「BならばAである」と言ってるのと同じ意味。
段々と感情論になってきてますよ。 牛乳飲んでカルシウム補給せよ。
Boostが100%取れてないGCCがISO 100%になるはずないな。
ところで
>>564 よ。VCはBoost 100%なのだが、
ISO 100%だと本気で思っているのかね?
571 :
デフォルトの名無しさん :03/10/26 21:20
「ISOC++100%取れてないからBoost100%じゃない」 ってことが正しいなら 「Boost100%動いたらISOC++100%取れてる」 ってことになるのでは?
572 :
デフォルトの名無しさん :03/10/26 21:21
573 :
デフォルトの名無しさん :03/10/26 21:22
>>571 なりません。もう少し勉強してください。
576 :
デフォルトの名無しさん :03/10/26 21:24
相変わらずレベルの低いスレだな
>>576 これくらいレベルが低くないと、プログラマなんてやってられません
578 :
デフォルトの名無しさん :03/10/26 21:26
>>568 > 「AでないならばBでない」というのは
> 「BならばAである」と言ってるのと同じ意味。
全然ちがう。1つ目が正しいなら2つ目は間違い。
>>571 > 「ISOC++100%取れてないからBoost100%じゃない」
> ってことが正しいなら
> 「Boost100%動いたらISOC++100%取れてる」
> ってことになるのでは?
1つ目は正しいが、2つ目は間違い。
GCCは「ISOC++100%取れてないからBoost100%じゃない」になる。
BoostもISOC++も100%じゃないGCCと、
Boostが100%だと分かっているVC++。
どちらが正しいか誰が見ても明らか。
0%---GCC------Boost100%-----VC------ISO100% Boostが100%に達していないなら、ISOが100%に達することはないし、 Boostが100%に達していても、ISOが100%に達しないこともある。 Boostが100%に達していないGCCはISOが100%になることはない。 そしてBoostが100%だからといってVCがISO 100%だと言っている奴もいない。 一人、Boost 100%ゆえにISO 100%と勘違いしている馬鹿がいるみたいだが(藁
(´д`)
581 :
デフォルトの名無しさん :03/10/26 21:28
>>579 違います。
VC++はBoost 100%だから当然ISO C++100%になります。
みなさん幸せなんですね。 こんなにもくだらない事で盛り上がれるなんて。
>>578 ネタの可能性が高いけどマジレス。
「AでないならばBでない」ということは、Bという集合はAからはみ出だしていないことになる。
つまりBはAに含まれる訳だ。
このことから「BならばAである」は正しい。
>>581 もうそろそろ諦めたらどうだ。GCCはISOを100%満たしていないし
GCCはVCよりも劣るのだよ。
585 :
デフォルトの名無しさん :03/10/26 21:31
>>584 たとえばお前とか
VC擁護してる馬鹿連中って根拠ないし、非論理的。
586 :
デフォルトの名無しさん :03/10/26 21:33
>>583 > 「AでないならばBでない」ということは、Bという集合はAからはみ出だしていないことになる。
> つまりBはAに含まれる訳だ。
> このことから「BならばAである」は正しい。
ネタだろうけど、A=バナナ、B=リンゴに当てはめてみたよ(w
「バナナでないならばリンゴでない」ということは、リンゴという集合はバナナからはみ出だしていないことになる。
つまりリンゴはバナナに含まれる訳だ。
このことから「リンゴならばバナナである」は正しい。
>>552 > GCCもISOC++100%取れてないからBoost100%じゃないんだろ。
GCC叩きたくて必死らしいけど
そんな分かりやすい嘘をついてまで叩かなければならないのか?
0%---GCC------Boost100%-----VC------ISO100% この図が真実を表している。だれも反論する奴はいないだろう。
>>586 ネタだろうけど、
「バナナでないならばリンゴでない」
は真ではないので、その推論は間違い。
おまえら、スレ違いですよ。 それにISO100%ってなんですか?どうやって確認するんですか? ISOがテストプログラムでも用意してくれてるんですか?
>>586 >バナナでないならばリンゴでない
そもそもこれが間違っているだろ。
前提として「AでないならばBでない」が正しければ、
「BならばAである」が正しいと言っているわけで・・・
>>589 その通り。583の言っていることはめちゃくちゃ。
>>592 俺に反論するなよ。俺は単にA=バナナ、B=リンゴに置き換えただけだ。
583の言っていることがおかしいんだよ。
前提が間違っているなら、どんな命題も真って 直感に反するよな。
0%---GCC------Boost100%-----VC------ISO100% この図が真実を表している。だれも反論する奴はいないだろう。
597 :
デフォルトの名無しさん :03/10/26 21:38
←────→ISO 100% ↑ │ │ GCC ↓VC++ Boost 100%
ここまでのまとめ。
550 :デフォルトの名無しさん :03/10/26 20:48
ISO C++を100%取れないVC++と
Boostを100%取れないGCCの闘い
ISO C++とBoost、どちらを選ぶ人が多いか
552 :デフォルトの名無しさん :03/10/26 20:53
>>550 GCCもISOC++100%取れてないからBoost100%じゃないんだろ。
555 :デフォルトの名無しさん :03/10/26 21:03
>>552 いつから
「Boostが100%動けばISO C++100%」
というようになったんだ?
556 :デフォルトの名無しさん :03/10/26 21:07
>>555 誰もそんなこと言って無いだろ。日本語読めないのか?
0%---GCC------Boost100%-----VC------ISO100% この図が真実を表している。だれも反論する奴はいないだろう。
600 :
デフォルトの名無しさん :03/10/26 21:42
質問です。 mmintrin.h の組み込み関数使いたいんけど、 このファイル、VCのSP5についてなかったっけ? SP5入れたのに mmintrin.h が見つからない・・・。 ProcessorPackじゃないとダメとか?
うへ〜、とりあえず論理的な間違いだけは落ち着いてちゃんと理解しようよ。 A: (x > 5) B: (x > 7) 「AでないならBでない」: (x <= 5)なら(x <= 7) 「BならばA」: (x > 7)なら(x > 5) 対偶の真偽は常に一致。 ではISO C++とBoostの話をどうぞ。
602 :
デフォルトの名無しさん :03/10/26 21:42
552=556=VCマンセーによるGCC叩き
604 :
デフォルトの名無しさん :03/10/26 21:44
要するにISO 100%取れないだけのVCと ISOもBoostも100%取れないGCCってことだろ。
GCCコンパイル遅いよね
対偶しらない中学生に説明してるみたいだな・・・ たとえば 「辛くなければ唐辛子ではない」これが正しければ、 「唐辛子は辛い」が成り立つ。 同じように 「バナナでないならばリンゴでない」これが正しければ、 「リンゴならばバナナである」も正しい。 ただし、「バナナでないならばリンゴでない」これが間違っているのは 明らかなので「リンゴならばバナナである」は正しくない。
ISOの100%ってなに?どうやって確かめるの?
そんなにISO100%にしたければ自分でコンパイラ作れ
609 :
デフォルトの名無しさん :03/10/26 21:48
>>601 0%---GCC------Boost100%-----VC------ISO100%
これをAとBに代入すると
Boost100%: (x > 5)
ISO100%: (x > 7)
「Boost100%でないならISO100%でない」
「ISO100%ならばBoost100%」
うむ。間違いではない。ところでISO100%と言った奴は誰かいるのか?
VCとGCCがそれぞれが何パーセント準拠しているのか分からんが 今回のバグ問題のようにいざってとき裏切ってくれるから (ていうか今まで痛い目に会いすぎてるから) 漏れ的にはVCを信用しなかったりする
611 :
デフォルトの名無しさん :03/10/26 21:49
つまり、Boost100%でないGCCは 当然ISOも100%ではないわけだ。
>>550 > ISO C++を100%取れないVC++と
> Boostを100%取れないGCCの闘い
>
> ISO C++とBoost、どちらを選ぶ人が多いか
に対するレスとしての
>>552 > GCCもISOC++100%取れてないからBoost100%じゃないんだろ。
を読んで
>>564 > > GCCもISOC++100%取れてないからBoost100%じゃないんだろ。
> というのは
> Boost100%動いたらISOC++100%取れてると言ってるのと同じ意味
みたいに解釈したり
>>568 > 「AでないならばBでない」
みたいにどこからともなく"ならば"を召還したりできる人がいるらしいが、
552の発言って
>>570 > Boostが100%取れてないGCCがISO 100%になるはずないな。
と同じ意味だろ。
とりあえずおまいら必要充分条件から出直せ
子供の中には「対偶も真なり」を直感的に受けつけてくれない奴もいるようだ
対偶からも証明されているように、これが正しい。 0%---GCC------Boost100%-----VC------ISO100%
616 :
デフォルトの名無しさん :03/10/26 21:57
俺分かった。 ここにはVCはBoost100%(GCCは100%じゃない)だと知らない奴がいる。
617 :
デフォルトの名無しさん :03/10/26 21:59
>>615 Boostへの対応度とISO C++への対応度は別次元では?
>>617 Boostは、次期ISO C++(C++0x)のライブラリ案を目的として
ISO C++の仕様を前提にして実装されているものなわけだが
>>617 Boostって何か知っている?
C++の機能(テンプレート)を使ったライブラリだよ。
BoostのテストってのはC++のテンプレートが正しく
実装されていれば100%とれる。
>>619 ろくにBoost知らないくせにそんな適当な事書いて恥ずかしくないの?
Boostは100%であるVCだがISOは100%でない。 Boostは100%でないGCCはISOも100%でない。 それだけのことなのに何でこんなにレスついてんだ?(w
>>620 言いたい事はそれだけのようですね。
間違いがないから指摘できないのでしょうが。
>>623 boost::preprocessorはテンプレートで実装されてるんですか。そうですか。
--------------
今日の名(迷)言
--------------
**************************************************
Boostって何か知っている?
C++の機能(テンプレート)を使ったライブラリだよ。
BoostのテストってのはC++のテンプレートが正しく
実装されていれば100%とれる。
by
>>619 **************************************************
いい加減、VC++6は
>>618 たまにコンパイラ依存 (ANSI C++ だと実装依存とされるやつ) のコードが発見されて、
修正が入ったりするけど。まぁ、かなり希だが。
二世代前ではなかろうか。
>>626 boost::preprocessorは何で作られていると思ってるんだ?(w
Boostがテンプレートで作られていようが作られていまいが、 Boostで100%を取れないGCCはクソなわけだが。
641 :
デフォルトの名無しさん :03/10/26 22:24
ようするに標準C++への対応度から言えば GCC < VCということですね。
boost100%って強調するけど、現時点じゃ100%じゃないし、
それにGCCだって98%(Failが6個)は達成してる。
おまえらそんなに奇抜なコード書いてるのか?
>>640 大してかわらんだろ。
>>642 GCCが具体的なのに比べて、VCは具体的じゃありませんね。
は? じゃなくてw
646 :
デフォルトの名無しさん :03/10/26 22:35
なんでくだらない議論になってるんだよ。 おまえら厨房の集まりだな。 ここは質問スレだろ! 激しくスレ違いなチャットなんてしてるんじゃねぇよ!!
なんかのびてるから読んでみたんだけど
>>552 が
「Boost100%でないならISO100%でない」
「ISO100%ならばBoost100%」
こう言ったのを
>>555 の馬鹿が
「Boost100%でないならISO100%でない」
「Boost100%ならばISO100%」
と捉えて大騒ぎしてる。
ということでいいですよね?
とりあえず Boost100%ならIso100%である事を誰か証明してくれ。(漏れはよく知らん)
でなきゃ
>>601 は証明されない。
(例)
A : x > 4
B : abs(x) > 4
「A なら B」 は成立するが、「BならA」は成立しない。
>>649 >Boost100%ならIso100%である
だから、誰もそんなこと言ってないんだよボケ死ね
651 :
デフォルトの名無しさん :03/10/26 22:44
結局のところ、対偶を知らない中学生が 対偶を前堤にした意見に拒絶反応を示したということか
>>648 はい。そして現時点ではboost100%のコンパイラはないので、
boostリグレッションテストの項目がISOC++の規格的に満たされる
べきものならば、現時点でのISOC++100%のコンパイラはなさそうだということ。
653 :
デフォルトの名無しさん :03/10/26 22:53
>>648 >
>>552 が
> 「Boost100%でないならISO100%でない」
> 「ISO100%ならばBoost100%」
> こう言ったのを
全然逆ですな
> 552 :デフォルトの名無しさん:03/10/26 20:53
>
>>550 > GCCもISOC++100%取れてないからBoost100%じゃないんだろ。
リンゴとバナナが入ったおかげでスレの流れがよう分からんでよ。
藻前らそんなに暇なのか
もういいじゃん。 VCはBoost100%。GCCはBoost100%じゃない。 VCはISO 100%じゃない。GCCも当然ISO 100%じゃない。 それだけ。
657 :
デフォルトの名無しさん :03/10/26 22:57
552=648=652 必死すぎ
sage路線でいきましょう
今時sage厨ははヤンねェヨ
661 :
デフォルトの名無しさん :03/10/26 23:02
オレのおかげで見事に荒れたな。ウヒャヒャヒャヒャヒャヒャ
>>653 確かに「Boost100%でないならISO100%でない」 とは言ってないもよう。
途中のレスが混ざってしもた、削ろう
>>552 が
「ISO100%ならばBoost100%」
こう言ったのを
>>555 の馬鹿が
「Boost100%ならばISO100%」
と捉えて大騒ぎしてる。
ということでいいですよね?
>>662 うん。そして対偶とかいろいろ言って誤魔化しているがことごとく論破されている。
>>656 VC++も今はboost100%ではないんですが。。。
一番テスト項目をパスしてることは確かだとしても。
どこのコンパイラメーカーも自分勝手な独自仕様は入れるのに、 本分たる仕様をちゃんと実装しないその様は、俺の仕事ぶりとよく似ている。
>>662 >
>>552 が
> 「ISO100%ならばBoost100%」
> こう言ったのを
いや、言ってないし
> 552 :デフォルトの名無しさん:03/10/26 20:53
>
>>550 > GCCもISOC++100%取れてないからBoost100%じゃないんだろ。
>>666 「GCCもISOC++100%取れてないからBoost100%じゃない」 == 「ISO100%ならばBoost100%」
じゃないの?
>>655 俺は暇である。
つまり暇でなければ俺でない。
>>667 それは対偶ではなく裏ですな
違うものになる
>>666 > いや、言ってないし
そう。言って無いのに、
>>555 の馬鹿が
「Boost100%ならばISO100%」
と言っていると思い込んだんだろ。
みんな楽しそうだなw 漏れも混ぜてー。(・∀・)ノ
555が馬鹿 555が馬鹿 555が馬鹿 555が馬鹿 555が馬鹿 555が馬鹿 555が馬鹿 555が馬鹿 555が馬鹿 555が馬鹿 555が馬鹿 555が馬鹿
>>650 Oh!ボケてました。(でも死ぬのだけは勘弁な)
正しくはBoost100% < Iso100% であるかないかを証明するソースをくれ、ですな。
要するに
>>562 の図は正しいのかと。
でなきゃ正しいのか間違ってるのか判断できませんがな。
キモヲタがうるせえな。 おまえらあんま調子になってっと頃すよ?
>>673 boostがISOC++の仕様のグレーゾーンを明らかにすることはあるだろう
>「AでないならばBでない」というのは >「BならばAである」と言ってるのと同じ意味。 これは分かる。分かりやすく言い換えると 「動物で無いなら猫ではない」 「猫ならば動物である」 だからね。 しかし >「ISOC++100%取れてないからBoost100%じゃない」 >「Boost100%動いたらISOC++100%取れてる」 これは分からない。そもそも↑この文は >「AでないならばBでない」 >「BならばAである」 という形とは異なってるしさぁ。
●→逆 ↓ ↓ 裏→対偶
さっきから対偶対偶って言っているやつって 何が対偶でそれがどう関係するのか一言も言って無いんだよな。 こいつ対偶自体良く分かってないのかもしれない。
>これは分かる。分かりやすく言い換えると >「動物で無いなら猫ではない」 >「猫ならば動物である」 >だからね。 未だ生を知らず、いずくんぞ死を知らん(論語) 死を知れば生を知ったということですか?
>>679 自分で何が言いたいのか説明できないこと言わない。
>「AでないならばBでない」というのは >「BならばAである」と言ってるのと同じ意味。 これ自体間違い。
>>680 具体例を当てはめても
それで何かを説明したことにはならんということ
>>676 それは「AはBを含む」という前提での話でしょう。
猫と動物を逆にしてみ。
「猫で無いなら動物でない」 : 正しい
「動物ならば猫である」 : 間違い
正直大愚よくしらんから、調べたんだけど、それとりあえず書いとくね たいぐう 0 【対偶】 (名)スル (1)対(つい)になっていること。対称をなすこと。 「此雲の変幻出没と彼水の寂静不動と―す/日本風景論(重昂)」 (2)修辞上、対比的な語句を対称して配置すること。漢詩文などで多用される。対句。 (3)〔数・論〕〔contraposition〕一つの命題「 p ならば q である」に対して、その後件の否定を前件とし、前件の否定を後件とする命題「 q でなければ p でない」をいう。ある命題が真ならば、その対偶も必ず真である。
一つの命題「 p ならば q である」に対して、 その後件の否定を前件とし、 前件の否定を後件とする命題「 q でなければ p でない」をいう。 ある命題が真ならば、その対偶も必ず真である。
調べて思ったんだけど、最初に対偶言い出した奴も馬鹿ってことですか?
>>683 > 「猫で無いなら動物でない」 : 正しい
茶でも飲んでおちけつ。
C++からかなり遠い話題になったな。 まぁ、こんな風に走り出したら止まらないのも分かるが、ほどほどに・・・ どっかにスレ変えたら?
まあ、
>>555 が馬鹿ってことですな。
552 :デフォルトの名無しさん :03/10/26 20:53
>>550 GCCもISOC++100%取れてないからBoost100%じゃないんだろ。
555 :デフォルトの名無しさん :03/10/26 21:03
>>552 いつから
「Boostが100%動けばISO C++100%」
というようになったんだ?
>>683 AならばBってのは、Aが成立するものはすべてBであることが成立するっていうことなので
「猫でないなら動物でない」ってのは
「猫でないすべてのものは動物ではない」と言っていることになるヨ
これは対偶と似ているようで対偶とは関係ない。
>>689 仮に、
「GCCもISOC++100%取れてないからBoost100%じゃない」これが真なら
「Boostが100%動けばISO C++100%」これも真。
と俺も思う。
正しくは、 「GCCもBoost100%取れてないからISOC++100%じゃない」だろう。
あれからまだ続いてるのかよ
>>674 わざわざ他人を騙る必要があるのか?
(^¬^)(^∀^)(^∃^)(^∧^)(^∨^)(^→^)
697 :
デフォルトの名無しさん :03/10/27 00:06
> 552 :デフォルトの名無しさん:03/10/26 20:53
>
>>550 > GCCもISOC++100%取れてないからBoost100%じゃないんだろ。
> 555 :デフォルトの名無しさん:03/10/26 21:03
>
>>552 > いつから
> 「Boostが100%動けばISO C++100%」
> というようになったんだ?
「ISOC++100%取れる」をA
「Boost100%動作」をBとする。
>>552 は
「GCCもISOC++100%取れてないからBoost100%じゃないんだろ」
と発言している。この内容は
「GCCがBoost100%動作しない理由は『ISOC++100%取れてないから』である」
という意味であり、
ここには『ISOC++100%取れてない』ならば『Boost100%動作しない』
という前堤があることを暗示している。
すなわち552は、ここにて
「AでないならばBでない」と言っているものとみなされる。
これが真ならば、その対偶の「BならばAである」も真となる。
>>555 の発言は、その対偶そのものに対して
いつからそのような前堤が成立するようになったのかを確認している。
やっと理解できた 「GCCもISOC++100%取れてないからBoost100%じゃない」 この文は間違ってる。しかし俺は「ISOC++100%取れるならBoost100%とれる」とムリヤリ解釈した。 つまり馬鹿は俺だ。
>>698 =552
君の勘違いのおかげでこのスレ壊れちゃったよ
てへ、ごめんね。でも552とは別人だよ。
702 :
デフォルトの名無しさん :03/10/27 00:13
456のコードすらまともに動作しないVC++6.0とVC++7.1は 捨てましょうというのが結論
そんな下らんことで146レスも消費したのか。
704 :
デフォルトの名無しさん :03/10/27 00:16
698、552両名が勘違いして555を叩き続けて 146レス消費した結果が「テヘ」かよ
でも、
>>552 の間違いを指摘するために、いきなり対偶を持ち出したら、混乱してもしょうが無いと思う。
Boostの犬になると正常な判断を失うので まずはBoost100%などという目眩ましに 騙されないようにすることから始めよう。
>>705 「対偶も真なり」に対して直感的におかしいと感じる子供もいるらしいが、
そういうアフォを前堤にC++の話をしてもつまんなくない?
>>705 552のように真とも偽とも区別つきにくい発言
(何をもって100%と言っているのか意味不明状態)
に対しては、その対偶を突きつけて
それに対して意見させるのも、良くある検証方法だと思われ
ところでrefman2003.pdfってどっからゲットできるの?
>>709 そんなつまらん話よりC++の話をしろ!
やっべ、なんだこのスレ進行。面白すぎだ。 おまいら、もっとガンガン続けちゃってください。
>>709 >>710 2chのようなあまり推敲されてない文章が大量にある場所だと
多少おかしな文章も頭の中で自動的に意味の通る文に補正しちゃうことあるでしょ?
それを踏まえるとちょっと唐突すぎないかなと。
715 :
デフォルトの名無しさん :03/10/27 00:29
このコードは各処理系でどのように動作する? #include <iostream> class parent{ public: int x; parent(parent const &i):x(i.x){cout<<"C parent (parent "<<x<<")\n";} parent(int i):x(i){cout<<"C parent ("<<x<<")\n";} virtual void func(void){cout<<"F parent "<<x<<"\n";} }; class child:public parent{ public: child(child const &i):parent(i.x){cout<<"C child (child "<<x<<")\n";} child(int i):parent(i){cout<<"C child ("<<x<<")\n";} virtual void func(void){cout<<"F child "<<x<<"\n";} }; int main() { child a(1); parent b(2); parent &c=(true)?a:b; parent &d=a; c.func(); d.func(); }
対偶しらねー馬鹿厨は C++いじる前に日本語勉強してこいっつーこった
>>715 とりあえずstd namespace指定がないので大抵コンパイルエラーかも(笑)
GCCだと C parent (1) C child (1) C parent (2) F child 1 F child 1
C parent (1) C child (1) C parent (2) C parent (parent 1) C parent (parent 1) F parent 1 F child 1 VC7.0
結局VC7.0も駄目か WindowsでGCC使えればなあ
>>721 7.0は7.1と大違い
といってもこの件は同じ結果になるような予感もするが
723 :
デフォルトの名無しさん :03/10/27 00:41
VC++7.0って parent & c = (true) ? a : b; を parent & c = parent ((true) ? parent (a) : b); と解釈するの?
C parent (1) C child (1) C parent (2) C parent (parent 1) C parent (parent 1) F parent 1 F child 1 VC7.1
対偶って (A ⇒B ) ⇒ (not B ⇒ not A) って事か? それよりド・モルガンの法則勉強しておいた方がC++には役立つぜ。 (A and B) == not(not A or not B) ってな。 (A or B) == not(not A and not B) も。
>>721 Mingw が使える。ただ UNICODE 関連やリソース作成、デバッグなどがメンドイから、
コンソールアプリ以外では使用をお薦めしない。
>>698 罰としておまえのハンドルはこれから「バナナ」だ。
バナナ以外での出入りを禁止する。
アセンブラコード見たけど 漏れのgcc だと (true)?a:b; を最適化しちゃうね。 -O0 オプションつけてもだめだった。 つまり >Otherwise, if the second and third operand have different types, > and either has (possibly cv-qualified) class type すら判定していないのだから、その後の型変換だの、 コピーだのが起こりようがない。
> つまり > >Otherwise, if the second and third operand have different types, > > and either has (possibly cv-qualified) class type > すら判定していない んなこたーない。
俺がプログラマーを始めたころはドモルガンとか常識だったし and or not xorが複雑に入り組んでいても混乱しないやつらばかりだった。 そうじゃないとCとアセンブリ言語のmixed language programmingの 環境についてこれない。 最近の若いやつらは not (not a or b) と a and not b a and not (a and b) と a and not b の置き換えすら満足に思考できない。 論理式の合理化ができないから無意味にネストしたif文を大量に連ねる。 たまに置き換えをやろうとすると高確率で間違ってバグを作ってくれる。 「この一連のif文の意図は何ですか?」「私にも分かりません」 あと2進数が分からないし分かりたくもないと胸を張るやつらもいる。 そんなやつらが俺が若かった頃よりも多く稼いでることを考えると 酒がまずくなる。 酔いも回ってきたころだし、寝るか
なんでこのスレこんなに早いんだよ… 突然 対偶が出てきてソレを理解できない厨によって スレがどんどん脱線し、混乱して 収束した ということでOKですか?
お礼外にも馬鹿なこと言ってる奴大勢居たのにどこいった?
735 :
デフォルトの名無しさん :03/10/27 01:13
>>730 最適化とは違う話
parent &c=(true)?a:b;
parent &d=a;
c.func();
d.func();
を
for(int i=0;i<2;i++){
parent &c=(i)?a:b;
parent &d=a;
c.func();
d.func();
}
に変えても動きの本質は変わらない
>>734 バナナさんが最後だったんですよ。
いわゆるババ抜きのババを引いたときにゲーム終了って感じですね
>>731 漏れんとこは以下ですがねぇ。
g++ -g -O0 -o main main.cpp
parent &c=(true)?a:b;
lea 0xffffffe8(%ebp),%eax
mov %eax,0xffffffd4(%ebp)
parent &d=a;
lea 0xffffffe8(%ebp),%eax
mov %eax,0xffffffd0(%ebp)
full adder と half adder をC言語でエミュレートせよという宿題を 出された廚がいたので適当に答えておいた。あんなもん今じゃ ほとんど忘れかけてるよ〜
>>735 gcc でこうなった
parent
child
child
child
>>740 昔はそういう宿題出されたら必死になって考えてたなあ。
今じゃネットで質問した方が早い。
そりゃ新卒もどんどん馬鹿になって小さくなるよ。
そのうち人間に肉として食われるようになるだろう。
よーし、今までの不手際を謝りながら、もう一度まとめさせてくれ スマソスマソ これでいいか? #include <iostream> using namespace std; class parent{ public: int x; parent(parent const &i):x(i.x){cout<<"C parent (parent "<<x<<")\n";} parent(int i):x(i){cout<<"C parent ("<<x<<")\n";} virtual void func(void){cout<<"F parent "<<x<<"\n";} }; class child:public parent{ public: child(child const &i):parent(i.x){cout<<"C child (child "<<x<<")\n";} child(int i):parent(i){cout<<"C child ("<<x<<")\n";} virtual void func(void){cout<<"F child "<<x<<"\n";} }; int main() { cout<<"<1>";child a(1); cout<<"<2>";parent b(2); for(int i=0;i<2;i++) { cout<<"<2>";parent &c=(i)?a:b; cout<<"<3>";parent &d=a; cout<<"<4>";c.func(); cout<<"<5>";d.func(); } }
スレ違いだけど店頭PCにいたずらスレより。
このプログラムを .js の拡張子で保存し、走らせてみよう。
俺が悩んでいるのはjavascriptにsleep()がないために、
無駄にCPUを食うことだ。
var IE;
var ti = 2000;
for (i = 0; i < 5; i++) { // ここを適当に修正
IE = WScript.CreateObject("InternetExplorer.Application");
IE.Visible = true;
IE.Width = 1280; IE.Height = 930;
IE.Navigate("
http://members.aol.com/pethumor/insane.swf ");
var dstart = (new Date()).getTime();
while (1)
if((new Date()).getTime() >= dstart + ti) break;
ti = ti * 2 + 1000;
}
>>746 わかった。C++ならWin32も使えるし簡単。まあ店頭へのいたずら
なのでjavascriptの方がお手軽だから使っただけ。
>>735 でワカータよ。
731==742 タンゴメソ。吊っ(ry
∧||∧
>>744 <1>C parent (1)
C child (1)
<2>C parent (2)
<2><3><4>F parent 2
<5>F child 1
<2><3><4>F child 1
<5>F child 1
GCCです
どうせコピーコンストラクターが呼ばれないから
参考にならないかもしれませんが参考のため
751 :
デフォルトの名無しさん :03/10/27 01:41
バナナ=間違いをすぐ認める素直なアフォ
752 :
デフォルトの名無しさん :03/10/27 01:58
555のようなものをエサと言うんだよな 驚くほど沢山の馬鹿が釣り上げられたこと
そんなババナ
ここはバナナの気持ちが分かるインターネッツですね
>744 VC++6.0 (略)ループから <2>C parent (parent 2) <3><4>F parent 2 <5>F child 1 <2>C parent (parent 1) C parent (parent 1) <3><4>F parent 1 <5>F child 1 ちなみに ((i)?a:b) にピリオドを打つとインテリセンスが働きやがります。 そしてこう書き換えても parent &c=(i)?a:8; 問題なくコンパイルが通り、こうなった <2>C parent (8) C child (8) C parent (8) C child (child 8) <3><4>F child 8 <5>F child 1 <2>C parent (1) C child (child 1) <3><4>F child 1 <5>F child 1 面白いなぁ。 しかし、演算子オーバーロードもできない三項演算子で、 オブジェクトそのものを扱うなってことか。
確かborlandC++だと3項演算子にバグがあって コンストラクタが呼ばれてないのにデストラクタが呼ばれるとか そんな変な動作をするような話を聞いた。 今のところ、オブジェクトの実体を3項演算子に渡すのは 避けといた方が無難なんだろうね。
特異な書き方をする奴が悪いということでFA
758 :
デフォルトの名無しさん :03/10/27 08:39
VC酷いな C parent (parent 1) C child (child 1) この二つの出現はありえない。 VCの三項でクラスを扱うと高確率でバグを産む気がする。 とりあえず三項禁止してif文にしようと思ったが コンストラクターでのメンバー初期化のときはどうしようか。
759 :
デフォルトの名無しさん :03/10/27 08:43
>>744 VC7.1
<1>C parent (1)
C child (1)
<2>C parent (2)
<2>C parent (parent 2)
<3><4>F parent 2
<5>F child 1
<2>C parent (parent 1)
C parent (parent 1)
<3><4>F parent 1
<5>F child 1
ちなみに3項演算子を以下のように参照に先にcastすると
cout<<"<2>";parent &c=(i)? static_cast<parent&>(a):b;
<1>C parent (1)
C child (1)
<2>C parent (2)
<2><3><4>F parent 2
<5>F child 1
<2><3><4>F child 1
<5>F child 1
>>758 > C parent (parent 1)
> C child (child 1)
> この二つの出現はありえない。
なんで?
762 :
デフォルトの名無しさん :03/10/27 12:51
ログ嫁
763 :
デフォルトの名無しさん :03/10/27 19:20
C++でマウスをプログラムで操作するにはどうすればいいんですか?
C++では出来ません。該当プラットフォームのスレに行ってください。
同じように言ってやりたい奴らが
まずマウスに車輪などの区動機をつけてください 話はそれからです
ロボットコンテストを目指してるのか
GCCもISOC++100%取れてないからBoost100%じゃない の意味すら分からない低能スレはここですか?
時間の流れが他人と半日以上もずれた超人のいるスレはここですか?
↑超人がキレた
ワラタ
♪ルンルン♪o(^0^o)♪~(o^0^)o ~♪♪~o(^0^o)~♪(o^0^)o~♪ランラン♪
家を壊すぜo(^0^o)♪ 橋を壊すぜ~(o^0^)o ~♪ ビルを壊すぜ~o(^0^o)~♪ 東へ西へ(o^0^)o~♪
good job
結局VCを叩いてた555の馬鹿は論破されたので 結論としてはVCが正しかったということですか MS叩きの厨房はしつこかったな
今回MSはLoki/boost対応に主眼を置いて実際完全対応したけど、 やれば出来るじゃんっつーか、今までやってこなかったのは怠慢も甚だしいだろっつーか。 なんで7.0->7.1で出来ることを6.0->7.0時代にやらなかったんだ?
6.0->7.0間でもテンプレートとSTL相当良くなってたじゃん。
そうそう。んで7.0のバグフィックスして7.1になったからこれだけイクナったんじゃないの?
6.0のSTLはヤバすぎるので皆STLPort使ってたしな。
std::fstream hoge; hoge.open("aaa.txt"); std::vector<double> vec; while(hoge){ hoge >> vec; } ってやったら最終行が2回読み込まれるんだけど何で?
コードが悪いから
修正。 std::fstream hoge; hoge.open("aaa.txt"); std::vector<double> vec; while(hoge){ double tmp; hoge >> tmp; vec.push_back(tmp); }
>>784 std::istreamはCと同じで読み込んでみて初めてエラーかどうかわかる。
while (true) {
double temp;
hoge >> tmp;
if (hoge) break;
vec.push_back(tmp);
}
あらら ×temp ○tmp
>>778 6.0>7.0で対応目指したんだが間に合わなかったから7.1に回されたらしい。
while(1){
double tmp;
hoge >> tmp;
if(!hoge)break;
vec.push_back(tmp);
}
と
double tmp;
while(hoge>>tmp){
vec.push_back(tmp);
}
でwhileの外にtmpを宣言するのが気持ち悪かったので
前者で対応しました。
>>785 >>786 さんサンクス。
その2択で前者はありえないと思た。
for (double temp; hoge >> temp; ) { vec.push_back(temp); } だとダメ?
>>791 理由を言ってくれるとありがたいです。.
>>792 for(double temp;hoge>>temp;vec.push_back(temp)){}
ってダメですかね?今コンパイル環境がないんでためしてないですけど。
>>794 おれは791氏じゃないけど、791が普通の感覚だとおもう。
まぁ、コンパイラの最適化次第でどうせ同じになるような気もするので、
どうでもいいっちゃどうでもいいけど。
>>796 791でも795でもないけど、
せっかく条件を記入できるようにしてるところを殺して、わざわざ終了条件をわかりにくくすることはあるまいよ。
変数のスコープを制限したいのならその周りをさらに{}で囲めばいいだけなんだし。
>>797 言わんとする感覚は分かりました。明瞭な回答有難うございます。
なんで for(;;){} ↑ここのスコープはブロックの中なのに do{}while() ↑ここはブロックの外なんだ? わざわざ外に変数作るのすげー邪魔くさいんだけど。
プログラム中で別プログラムを実行する場合はどうしたらいいんでしょうか。 pthread_createあたりで別スレッドを起動するぐらいしか自分は思い浮かばないんですが、 他に方法は無いでしょうか。
ああースレッドでは関数は起動できるけど別プログラムは無理なのかな。 となるとfork()〜exec()をやればいいのかな・・・
別プログラムを起動して何をしたいのかにもよるけど、
system() とか popen() とか。
>>800
803 :
デフォルトの名無しさん :03/10/30 12:35
VC6で正規表現を使いたくてBREGEXP.DLLを使ってみました。 char *pTarget=new char[1000]; char *pKey=new char[1000]; char *pMsg=new char[100]; BREGEXP *pcRegExp=NULL; strcpy(pTarget, "The Test of BREGEXP.DLL 2003/10/29"); strcpy(pKey, "/2003/2004"); int iResult=BSubst(pKey, pTarget, pTarget+strlen(pTarget), &pcRegExp, pMsg); とやってみましたが、pTarget[]の文字列は置換されていませんでした。 2003を2004に置換するにはどのように入力したらよいでしょうか?
>>799 両方とも、
{for(;;){}}
{do{}while()}
こう書いたときと等価なんだから、別におかしいとは思わない。
等価じゃありません。
VBをつかってブラウザを起動(もしくは作る)しHPのFORMタグに自動的に ID,パスワードなどを入力させるプログラムを作りたいのですが、 資料がなく困っています。いい資料orHPなど参考になるものを 知っている方教えてください。 (ブラウザを起動することはできます。)
>>804 おかしいかどうかは知らないけど
do
{
bool succeeded = いろいろ;
}while(succeeded);
とか出来ないのサイアクじゃない?
すみません。書くところまちがえました。 C++のすれでしたね(T_T)
>>808 while(いろいろ(...)){} でいいじゃん。
>>810 論点ずらすくらいならレスしなほうがいいと思うよ。
アフォは、放置。
テキストファイルから1行ずつ文字列を読み込んで、特定の単語を抜き出し 配列に格納するルーチンはどう設計したらいいでしょうか?
#define UNKO 1000000000000000 Cの場合これでUNKOが100000000000000に置き換えられるのですが、 これはC++でも使えるのでしょうか? コンパイルエラーが出るので、ひょっとしたら使えないんじゃないかと思うんですが・・・
>>814 コンパイラのunsigned long intの範囲を超えたんじゃないの?
816 :
デフォルトの名無しさん :03/10/31 03:25
C++ではあるクラスのstaticなメソッドからそのクラスの インスタンスのprivate/protectedなメンバは操作できなんでしょうか? class A{ private: int Val; public: static void doSomething(A *a){ a->Val=10; } }; みたいな感じで。
出来ます
>>816 そういうのは試してみてから物を言ってください。
>>817 ,818
いや、VC++6で試してるんだが、protectedメンバにアクセスできない、ってエラーが出る。
具体的にはclass Aのスタティックメソッドからclass Aの親の親クラスの
protectedメンバを参照してるんだけど、これは無理?
無理です
ショボーン ありがとうございました。
822 :
デフォルトの名無しさん :03/10/31 05:32
STLを使うとビルドが遅くなってしまう。 ヘッダにそれ関連を含めただけでもビルドが遅く・・・ みんな、どのように解決してる?
>816 無理矢理、やってやれないこともない class A { protected: enum {ANUM = 10}; }; class AA : public A { public: static void sf(A *a){cout << static_cast<AA *>(a)->ANUM << endl;} }; void main() { A a; AA::sf(&a); }
ビルド・・・ 時代だなぁ。
BCCもVC7.1もプリコンパイルヘッダ標準装備だし、あとgccが プリコンパイルヘッダを装備したら、もうコンパイルの遅さを コンパイラのせいにはできないぞよ。
んなもん、内部処理の出来不出来でいくらでも早くも遅くも出来るじゃん。
>>823 遅くなるって、何十分も何時間も遅くなるわけじゃないから、
たいした問題ではない。
>>823 マシン買い換えるのが一番手っ取り早い。
VC++の場合、コンパイル済みヘッダを使ってもテンプレートはあまり速くならない
コンパイル速度云々という話が出るたびに PCなんて安いんだからいいの買えよって思う。
PCなんて安いんだから・・・ 時代だなぁ。
5マソもあれば、アポロにのって月へ行ったマシンよりも 良いCPUの乗ったマシンがかえるもんな。 まぁファミコンのほうが性能がよかったらしいが
ファミコンといったら任天堂。 Play-Stationといったらsony。 次はどこのメーカーの次世代ゲーム機がヒットするのかな。
チュートリアルのテキストエディタの作成に失敗しました。
>>839 それはあなたが呪われているからです。
三日以内にテキストエディタを完成できないと(以下略
841 :
デフォルトの名無しさん :03/10/31 19:56
>>839 金輪際プログラミングはしないと誓って、あとはファミコンで遊んでてください。
さもなくば一生呪われるでしょう。
VCのコンパイル時間はほぼCPUのスペックに比例 メモリやHDDが貧弱すぎなければの話だが P3/550で5分 豚25で1.5分
反比例だなスマソ
>>823 pimpl
↑めんどくさいよー。
それに外向けのサービス関数に、STLのコンテンツへの参照渡しなどに
したい場合、結局、ヘッダにSTL絡みのヘッダをincludeするはめになるし。
>コンパイル速度云々という話が出るたびに >PCなんて安いんだからいいの買えよって思う。 いや、だから、3.2GHz程度のPCでは速度的に足りなくて不満だから 別の解決方法を模索してるのに・・・。
完全ビルドに45分かかってる。 仮に数年後に10GHzなCPUが登場してもなお、15分前後はかかる計算に。 しかも、ソースファイル数が100にも届かない初期段階。 おそらく開発後半は2時間かかるかも。 完全ビルドになりにくいようなヘッダファイルを構築する工夫があるが これはこれで手間時間というコストがじわりじわりと効いてくるし そもそも本質からは離れた作業。 「じゃ、テンプレート捨てろよ」と言われても、今更捨てられない。 捨ててしまう犠牲は計り知れない。 はてさて、どうしたものか。
各ヘッダでincludeするのやめろよ。先行宣言だけにせえ。 ヘッダ間の依存関係を極力なくせよ。
>>各ヘッダでincludeするのやめろよ。先行宣言だけにせえ。 横からつっこみ入れるけど、返却値だとか引数にSTLなどの テンプレート使った時点で、それら標準ヘッダファイルをincludeせねば ならない。仮に参照渡しやポインタ渡しのみ必要な場面であっても 先行宣言(存在仮宣言)だけが記述されたヘッダファイルというのは STLには存在しない。 ヘッダ間の依存関係を極力なくしても、避けられない共通モジュールで STLを使っていたら、全ての苦労が水の泡。 CPUパワーが100倍近く足りないという感には激しく同意。 小物ツールでよいならば、それこそ500MHz程度のPCで十分んなのだが。
HDD速い方が効果的なような
>>847 > 完全ビルドに45分かかってる。
どういうコードをビルドしてるんだ?
俺が今仕事でいじってるのは C++ とアセンブラで合計 7 万行程度のプログラムだが、
これでも gcc でフルビルドに要する時間は 2 分程度だぞ。CPU 8 つ使ってるけど。
>俺が今仕事でいじってるのは C++ とアセンブラで合計 7 万行程度のプログラムだが、 >これでも gcc でフルビルドに要する時間は 2 分程度だぞ。CPU 8 つ使ってるけど。 ん、それ、x8なら単一CPUで流したら、16分かかるでしょ? C++というより、テンプレ使うか否かがボーダーラインだし。 仮に847のプロジェクトが20万行程度の規模だったら丁度、45分だろ。 ありえない話でもない。
gccが異様に遅いのが悪因なわけだが。
>>852 > ん、それ、x8なら単一CPUで流したら、16分かかるでしょ?
CPU に比例してリニアには延びないよ。gcc だとリンク時間も長くなりがちだし、dual
processor のマシン一台でもせいぜい 6 分程度。コンパイルだとファイル I/O 待ち
時間がかなり多くなりがちだから、
o 複数のファイルを同時にコンパイルし、入出力をオーバーラップさせる。経験上、
プロセッサ1つにつき 2 - 3 ファイルを並列ビルドするのが良い。
o 主記憶を多めにとって、ファイルを極力キャッシュに載せる。ディスク入出力を
可能な限り少なくする。分散ファイルシステムを使っている場合にはパラメタ
要調整。
といった対策を取ると、コンパイル速度が向上する。
ちなみに俺のトコロだと Athlon MP 2100+ * 2, DDR SDRAM 2100 1GB というマシンを
4 台ネットワーク上に並べて分散ビルドしてる。だいたい、各マシンで同時に 4 ファイル
並列コンパイルするように設定。
GCCなら-pipeオプションや、/tmpをメモリ上に配置するだけで かなり速くなる。VC++でも中間ファイルをディスクに書き込まない 設定とかあるんじゃないのか?VCが遅いとか言ってるのは 使い方がおかしい気がするが。メモリを沢山積めばソースファイルは ディスクキャッシュが効いて、メモリ上に貼り付けになるしな。 まあ、どうでもいいがスレ違いだ。
>>855 > VCが遅いとか言ってるのは使い方がおかしい気がするが。
ありがちなのが pch の設定ミスだね。
> まあ、どうでもいいがスレ違いだ。
そうかも。
とりあえず iosfwd みたいなのが STL にも欲しいよな。
>>857 同意
iosfwdしか先行宣言ヘッダがないのは標準の片手落ちな感じ。
g++ について来るヘッダには bits/stringfwd.h ってのがあるなぁ。 あとは containerfwd.h とかってモンでも自分で作ればいいか。 なんか今までは「メンドイからいいや」とか思ってたけど、ちょいと作ればいいだけじゃねぇか。
gccでおそいって言ってる人に聞きたいんですが、デバッグ情報生成させてますか?
こんぱいるor実行 速度 どっちの話だ?
ん?コンパイルの話ですよ。
g++で遅いって話はテンプレ使ってるからだろうってことでスレ違いになったよ。
>>1 周辺を読んでね
テンプレートと既成のテンプレートライブラリは別だろ。
gccはもともと速いコンパイラじゃないだろ
>>865 遅いと言うのは相対するものがないと言えないんだがなんと比べてるんだ?
>>866 時期時期で一般的なコンパイラ
TC/SC/MSC全盛の時代からgccが一番遅かったし
他プラットフォームの事情は知らんけど。
GCCってコンパイラの最低基準じゃないのか? 断罪されるべきはあれよりヘボイ物作っておきながら 金取ってる連中だろ。
コンパイラ間の比較はそれぞれが持っている機能に差がありすぎて 比較のしようがないような。。。
>>869 > GCCってコンパイラの最低基準じゃないのか?
そういう問題じゃないだろう。
gcc はコンパイル環境・ターゲット環境ともマルチプラットホーム前提、場合によっては
コンパイルだけは gcc を使うがアセンブラやリンカは binutils を使わずベンダのものを
使う事もある、と汎用性を最重視している。
他のコンパイラは、また別のトコロに重きを置いている。プラットホーム固有の最適化
だったり、ウィンドウアプリケーション開発のための統合開発環境だったり。評価軸が
違うから、いちがいにどっちが良い悪いとは言えない。
>>873 何と比べて遅いか聞かれたから答えただけだが
どこが同おかしいのか説明してくれ
同じソース行数で比較した場合、vc++がgccに比べて最低でも5倍は 速い。ただし、生成されるコードの速度に関しては特にその差は見られなかった。
Windows系はwindows.hという巨大ヘッダが立ちはだかってるから 早期からプリコンパイルヘッダが要求され、実装されてたもんな。
>Windows系はwindows.hという巨大ヘッダが立ちはだかってるから >早期からプリコンパイルヘッダが要求され、実装されてたもんな。 そうだね。このあたり、小さなプログラムばかりをターゲットとしてた gccは完全に遅れをとってる、というか未だに工事中な機能だしね。
インラインマクロを修正して、その挙動を確認するのに 全ビルドになってしまい、1時間かかってしまうこともあるからなぁ。 さらに、その1時間、別のことをしていて、なにを検証確認すべきかも うっかり忘れてしまうこともあったりして。 1分なら待てるけど。 となると、やはりPen4換算で、180GHz のマシンは欲しい。 えっと、CPUパワーが60倍になるのにどれくらいだろ? 10年はかからないと思うけど、5年はかかるよね?
>>880 開発中にインラインなんて使わんだろ。何考えてんだ。
インラインにするかどうかは最終段階でプロファイル見て決めるんだよ。
Pen4の3GHzのマシンで1時間もかかるもの書いてるならコンパイラ変えたら。
インラインマクロって何だ?
こんなマクロの事だろ BEGIN_MSG_MAP(CMainFrame) MESSAGE_HANDLER(WM_CREATE, OnCreate) COMMAND_ID_HANDLER(ID_APP_EXIT, OnFileExit) CHAIN_MSG_MAP(CUpdateUI<CMainFrame>) CHAIN_MSG_MAP(CFrameWindowImpl<CMainFrame>) NOTIFY_CODE_HANDLER(LVN_COLUMNCLICK, OnListViewColumnClick) END_MSG_MAP()
マクロっていつでもインラインでは。
>>889 880の例があるように、結構コストが高いのですよ。
>>890 それは各モジュールの独立性がほとんど確保できてなかったり
短くてもインラインにすべきでない関数の判断ができてないのが問題だと思うけど。
>>891 容易に判断を誤るものを「インラインぐらい」というのがおかしい。
>>893 "Inlines are the third most-misused C++ feature (after inheritance and overloading),
used far more often than any practical criterion could justify,
just because it is more covenient to write them in place.
Anything that encourages their use beyond strict engineering merit is detrimental."
inline にも export みたいな仕様が欲しいな...。 そして、仕様に入ってるだけじゃなくて、ちゃんと実装してホスィ...。
>>894 どっからの引用かは知らんが、だから何?
そういうもんなのか。 漏れは最初は容易に判断を誤っても、 すぐに慣れるもんだと思ってたんだけど、 みんなは容易に判断を誤っちゃうのか。
>>898 お前も間違って判断してるだろ。そんなもんだ。
900 :
デフォルトの名無しさん :03/11/02 15:33
900get & さらしあげ
>>899 覚えたてのころはよく誤ってたけど、
少なくとも最近は誤った覚えはないぞ。
>>902 「容易に判断を誤る」ってことに懐疑的なだけ。
なんで誤ってないと核心できるんだろう
漏れの1メートルが正しい!
判断基準を明記せずに「誤ってない」とかいっても無意味。 謝った結果の悪影響には、実装の変更による再ビルドの影響、 パフォーマンスの悪化、そして出力コードサイズの増大なんかが あるが、これらをどんなバランスで重要視するかだよな。 モジュール数が多い開発になるなら、実装の変更による再ビルドの 悪影響が耐えがたいほどになるため基本は非inline。pimplにするもいい。 パフォーマンスについては、ほとんどの場面でinlineにしても大して効果がなく 実際に大きな効果がある場所の判断は熟練してても間違いやすいので計測で。
雑談するならC言語スレに逝けよ
いや、ここでいい。 inlineな話題の延長だからな。
低脳ほどくだらんネタに拘るからな。 誰かにカマって欲しいならラウンジにでもいってこいよ。
>>912 ふーん、君はラウンジにお友達がいるんだ(w
↑すげー論理の飛躍
↑行間を読めないヤシ
インライン関数は.inlに書いて、リリース時はヘッダにインクルード デバック時はソースにインクルードする手法が一般的になりましたが さていかがお過ごしですか、みなさま。
そんな手法は一般的じゃありません
じゃあ、今からは取り入れて快適なC++ライフをお過ごしくださいね。
だからわざわざそんな面倒くさいアプローチとらにゃならんほどは 間違えないんだって。
別に大してメンドクサクも内ですよ。一度試してみてはいかがですか?
>>920 仮に間違えたってそのロスはビルドしなおす時間分だけで済み、
且つ実際には一度も間違えないのに、無駄に作業ステップを増やすことはないだろ。
少なくとも漏れにとってそれはチャリの補助輪と同じ。
一度チャリに乗りなれたら邪魔なだけ。
>>921 > 仮に間違えたってそのロスはビルドしなおす時間分だけで済み、
それが問題だというのがスレの流れ。前提を破壊するなよ。
assertion系マクロを有効/無効をチェンジするにも、 全部ビルドせねばならないし。開発後半、この切り替えは 重くのしかかってくるよ。 実装判断が間違えてなくても、厳しい例があるってこと。
>>仮に間違えたってそのロスはビルドしなおす時間分だけで済み、 えっと、2chなのでいろんな環境の人が混じってるので、前提条件も 様変わりする思うのですが〜、とりあえず、ビルドしなおす時間が 数時間にわたるケースも決して珍しくないという点。 全ビルドをなるべく避けたい現場ってのがある場合、どういう工夫がある? というのが流れ。
>>926 コンパイルオプションで部分的に有効にできるようになってればいいのにね。
なんでそんな構造になってるの?
確かにデバッグゴードをマクロでラップしてる場合は、 完全ビルドだね。これはもう避けられないのでは? 実際、ソースコードとしてはなんら問題ない書き方なんだし
933 :
デフォルトの名無しさん :03/11/03 00:26
つまり、ヘッダファイルと本体ファイルが別れてる、つか、 コンパイル済みのファイル(objファイルとか)から、 ヘッダファイルの情報が完全に無くなっている、 プリプロセッサなんてモノのある言語は糞だと。 そういうことか?
>>932 ふつー、デバッグビルドとリリースビルドは出力ディレクトリを変えておかないか?
すげー。そこまで言い切るんだ…
937 :
デフォルトの名無しさん :03/11/03 01:24
>>932 完全ビルドってのは最初の1回だけで、
以降は変更したとこだけでしょ。
ピンプルってなに??
pointer implement
ピンクパイナップル
なんやねんそれは
得ろゲーのアニメ作ってる会社だったと思った
ひとり、やねうらをが混じってるな。
[OVA]新体操(仮)の内容はともかく歌はいいよな。
946 :
デフォルトの名無しさん :03/11/03 08:15
みんな、だいたいどのくらいの数のファイルをコンパイルしてるんだろう。 うちのプロジェクトは、大体150個の.cppファイルと それと同じくらいの数の.hファイルなんだけど、 Pentium3-1GHzのマシンでフルビルドが5分くらい。 VC++.NET 2002を使ってる。 コンパイルって、他のファイルのコンパイル結果を知らなくてもできるよね? ってことは、めっさ分散処理向きだと思うのですが、 暇そうにしてるパソコンのCPUを使用する、 setiっぽいコンパイラって無いかな。
地球のみんな!オラのソースをコンパイルする為に力を貸してくれ!
Mac OSXの開発環境は分散コンパイル対応じゃなかったか。 ただまぁ、コンパイル速度ってCPUもさることながらI/Oの性能にも かなり依存してるとこがあると思うんだが。
RAM512MB以上とATA66以上だと ほぼCPUが律速段階と言い切ってもよさそう
SETI(Sokono Eroi-pc Tetsudae Imasugu-compile)プロジェクト始動!
>>946 > 暇そうにしてるパソコンのCPUを使用する、
> setiっぽいコンパイラって無いかな。
UNIX だと distcc とか PMVGmake とか。
>ただまぁ、コンパイル速度ってCPUもさることながらI/Oの性能にも >かなり依存してるとこがあると思うんだが。 自分もそう思ってた口なんだが、実測してみると I/Oはほとんど影響ないみたい。
>>952 分散コンパイルにするとネットワークを介してファイルや何かをやりとりするから、
そこがボトルネックになりがち。ローカルディスクだと話が違ってくる。
>>分散コンパイルにするとネットワークを介してファイルや何かをやりとりするから 設定次第だけど、タイムスタンプ比較でキャッシングするので ネットワーク越しに限らず、その負荷は無視できるほど小さいケースが 多いっすよ。
>>うちのプロジェクトは、大体150個の.cppファイルと 何行くらいのファイル? 150個というと、かなり小規模プロジェクトかもしれないけど ポリシーによって上下するのでなんともいえない。
>>954 > 設定次第だけど
うーむ、ネットワーク管理部門に NFS の設定を見直してもらうかなぁ。ちなみに
キーになりそうな設定項目が何か分かる?
俺のトコロだと C++ でソースをコンパイルする場合、単一プロセスだと CPU 使用率
(ユーザ時間 + システム時間 / 実時間) は 60% 程度。複数のファイルを並列で
コンパイルすると 100% 近く行くけど。
>うーむ、ネットワーク管理部門に NFS の設定を見直してもらうかなぁ。 >ちなみにキーになりそうな設定項目が何か分かる? samba経由(linux上)にソース置いてるので、sambaでの設定なら分かるけど NFSは不明。
961 :
デフォルトの名無しさん :03/11/04 17:40
Boostのregexを使ってみたのですが、関数内で boost::reg_expression<wchar_t> strRegExp=m_pwcRegStr; boost::match_results<std::wstring::const_iterator> cResult; BOOL bRes=boost::regex_search(stdStr, cResult, strRegExp); とあり、この関数が2度以上呼ばれるとメモリーリーク起こすようなのですが どのように対処すればよいですか?あと、正規表現自体の文法エラーを catch(boost::bad_expression){} ・・・(1) で、キャッチしているのですが、MFCだと catch(CMemoryException *pE){ pE->delete(); return -1; } みたいなことが必要なので(1)でもdelete()処理をする必要があったりはしないのですか?
>>961 後半だけ、よく見比べれば飛んでるのがポインタかそうでないかの違いがあることに気づくはず。
>>962 ぐぐってみると、
catch(boost::bad_expression *e){}
catch(boost::bad_expression&){}
なんてものがヒットしたんで混乱してます。・・・どちらにせよ例外時のメモリ解放処理は
ヒットしないので必要なさそうではあるのですが
> とあり、この関数が2度以上呼ばれるとメモリーリーク起こすようなのですが > どのように対処すればよいですか? boostのバグトラックかregexの作者さんに メール投げるかするとよいと思われ。
>>965 わかったけど今テンプレを連張りするとアクセス禁止くらいそうだから、
そんときは続きをよろしく。
968 :
デフォルトの名無しさん :03/11/05 10:41
山田うどん復活!!
969 :
デフォルトの名無しさん :03/11/06 15:30
オメ!!
970 :
デフォルトの名無しさん :03/11/09 00:27
ちゃんと最後まで埋めなさい!
埋めるならageるな
拡張子のcppとcc、どちらかに統一しなさい!
v――.、
/ ! \
/ ,イ ヽ
/ _,,,ノ !)ノリハ i
i jr三ミ__r;三ミ_ ヽ
l ,iヾ二ノ ヽ二 ハ ノ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ヽ、.l ,.r、_,っ、 !_, <
>>1 糞スレ立てんな、蛆虫、氏ね。
! rrrrrrrァi! L. \______________
ゝ、^'ー=~''"' ;,∧入
,r‐‐'"/ >、__,r‐ツ./ ヽ_
/ / i" i, ..: / / ヽ-、
./ ヽ> l / i \
v――.、
/ ! \
/ ,イ ヽ
/ _,,,ノ !)ノリハ i
i jr三ミ__r;三ミ_ ヽ
l ,iヾ二ノ ヽ二 ハ ノ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ヽ、.l ,.r、_,っ、 !_, <
>>1 糞スレ立てんな、蛆虫、氏ね。
! rrrrrrrァi! L. \______________
ゝ、^'ー=~''"' ;,∧入
,r‐‐'"/ >、__,r‐ツ./ ヽ_
/ / i" i, ..: / / ヽ-、
./ ヽ> l / i \
976 :
デフォルトの名無しさん :03/11/09 19:39
大文字のCなんていう拡張子使うのか?
977 :
デフォルトの名無しさん :03/11/09 19:41
>>976 はじめの頃はそれを使っていたとか。
でもWindowsみたいにファイル名の大文字小文字を区別しないOSで問題が出るからやめたとか。
C++ Primerか何かで読んだ。
978 :
デフォルトの名無しさん :03/11/09 19:45
へぇーへぇー
979 :
デフォルトの名無しさん :03/11/09 22:37
C++でcinに文字バッファが残っているかどうかってどうやって調べるんですか? もし残っていたら特定の処理がしたいので、if分の条件式に入れたいと思っています。
cin.rdbuf()->in_avail()
う
め
る
ぞ
み
986 :
デフォルトの名無しさん :03/11/10 14:01
ロマサガ2をやろうかな
v――.、
/ ! \
/ ,イ ヽ
/ _,,,ノ !)ノリハ i
i jr三ミ__r;三ミ_ ヽ
l ,iヾ二ノ ヽ二 ハ ノ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ヽ、.l ,.r、_,っ、 !_, <
>>1 糞スレ立てんな、蛆虫、氏ね。
! rrrrrrrァi! L. \______________
ゝ、^'ー=~''"' ;,∧入
,r‐‐'"/ >、__,r‐ツ./ ヽ_
/ / i" i, ..: / / ヽ-、
./ ヽ> l / i \
988 :
デフォルトの名無しさん :03/11/10 23:48
捕手新党が自民党に吸収されたってね。 ただのヘタレ政党じゃん。
そろそろC--の時代じゃないか?
時代じゃありません。
そろそろC//の時代じゃないか?
992 :
デフォルトの名無しさん :03/11/11 00:54
記念カキコ v(^-^=)
ずさっと
しかしよく続くねぇ>このスレ
5秒前
4秒前
(プゲラッチョ
sage
(rァ゚Д゚)rァ 死刑! >999
1000取得
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。