- 1 名前:デフォルトの名無しさん [2005/08/11(木) 11:18:15 ]
- 前スレ pc8.2ch.net/test/read.cgi/tech/1021364372/
- 802 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 14:58:28 ]
- >>798
電子計算機損壊等業務妨害 で告訴しろ。 (告訴状作って会社の法務部に送りつけるだけでも効果あるぞ)
- 803 名前:デフォルトの名無しさん [2008/02/17(日) 15:07:57 ]
- >>802
人事部に電話したら、「会社の方針でお前を監視してるんだから逆らうな」って言われたから。 人事部長と直接話したいって言ったけど無視された。 会社クビにされるときに人事部長を名乗る人が来たけど、なんと創価学会の池田先生に瓜二つ。
- 804 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 15:16:56 ]
- >>803
こちらへどうぞ ttp://pc11.2ch.net/test/read.cgi/prog/1197192900/
- 805 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 15:26:19 ]
- >>803
「他人にいたずらされている」という妄想を抱いて、「なら反撃で、いたずら し返さなければ」とイタズラして、会社側から疑いをかけられて監視されて、 あげくのはてにイタズラしていたことがバレてクビになった。 としか、文章からは読み取れない。
- 806 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 15:58:23 ]
- むしろメンヘル逝きをお勧めしたい。
- 807 名前:デフォルトの名無しさん [2008/02/17(日) 16:30:11 ]
- 結局大工は釣りだとかいう観念論しかできないんだねw
- 808 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 17:20:45 ]
- いくら上げても技術要素0%のレスで火は起こせないか
- 809 名前:645 mailto:sage [2008/02/17(日) 20:42:55 ]
- 気になったので、gccでやってみた
void bar(int); int func(int arg) { if(arg == 0) goto foo; { int i; i = arg*2; foo: bar(i); } }
- 810 名前:645 mailto:sage [2008/02/17(日) 20:43:39 ]
- .file "gototest.cpp"
.text .align 2 .globl __Z4funci .def __Z4funci; .scl 2; .type 32; .endef __Z4funci: pushl %ebp movl %esp, %ebp subl $8, %esp cmpl $0, 8(%ebp) jne L2 jmp L3 L2: movl 8(%ebp), %eax addl %eax, %eax movl %eax, -4(%ebp) L3: movl -4(%ebp), %eax movl %eax, (%esp) call __Z3bari leave ret .def __Z3bari; .scl 2; .type 32; .endef こうなる。 やはりiは確保されません。
- 811 名前:デフォルトの名無しさん [2008/02/17(日) 20:48:02 ]
- >>810
goto使うなっての以上に、ブロックで変数定義するなってのもある。 しかし、オブジェクトはその場所で作るしかないんだな。
- 812 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 21:33:13 ]
- だからレジスタに割り当てられてるんじゃないの?
- 813 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 21:44:22 ]
- >>812
たった4つの32ビットレジスタで計算しないといけないのにそんな無駄なことできないでしょ。 少なくとも何かをするとしたらレジスタを使う。 やるとしても小さいループのループカウンタくらいか。
- 814 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 21:47:27 ]
- goto fooすりゃi=arg*2が実行されないのは当然ダロ
何を期待してんのかわからn
- 815 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 21:58:11 ]
- >>813
内側のブロックで宣言できないとしたら、 外側のブロックで宣言するだけ。 実態としては何も変わらない。
- 816 名前:645 mailto:sage [2008/02/17(日) 22:02:54 ]
- >>814
ああ、テキトーに作った例だから、実際の動作は気にしないでくれ。 問題は、ブロックの中で定義した変数の領域が確保されていないのに、関数呼び出しに使われてしまうという事実ね。 多分、foo: の後にi = i+argなんてやってもダメだと思う。
- 817 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 22:03:51 ]
- >>816
ヒント: jne L2 が実行された場合は L2 のどこで「領域が確保」されていますか?
- 818 名前:645 mailto:sage [2008/02/17(日) 22:04:03 ]
- 809のiの定義の後でiに代入してるのはコンパイラにiの定義をスルーさせないように、それらしい仕事をさせたかったから。
- 819 名前:645 mailto:sage [2008/02/17(日) 22:04:41 ]
- >>817
ああ、別にされてないね。
- 820 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 22:26:56 ]
- データフロー解析ぐらいは最近のコンパイラなら当たり前だよ?
ガチガチにソースコードに対応するようなコードを吐いて欲しいなら -O0 を付けるとか...してもそこまでガチガチなコードが出るかどうか。
- 821 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 22:28:40 ]
- >>820
そういう問題じゃない。出ているコードは綺麗にソースに対応している
- 822 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 22:46:57 ]
- スタックフレームが
>subl $8, %esp で8バイト確保されていて iが >-4(%ebp) なら、関数の先頭で「確保」されてるんじゃね?
- 823 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 22:48:59 ]
- >>822
正解
- 824 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 02:57:19 ]
- >>811
>goto使うなっての以上に、ブロックで変数定義するなってのもある。 いやこれはするだろ。 あれ、みんなしない派?
- 825 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 03:21:11 ]
- 俺は、近くで定義したい派。
ブロック内で変数定義することはある。 ただ、外の変数と名前がかぶらないほうがいいかなぁ〜、くらいは気を使う。
- 826 名前:デフォルトの名無しさん [2008/02/18(月) 08:18:56 ]
- 普通は最小スコープ(内側のスコープ)で定義するのが常識
- 827 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 09:06:07 ]
- それ厳密に適用するととんでもないことに
- 828 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 09:25:19 ]
- 手続き的にやろうとするから、変数を外のスコープにひっぱり出すとかが
必要になる。関数的に、なんでも再帰あちこちでreturnな書き方をすれば それでうまくいく。
- 829 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 12:26:48 ]
- >なんでも再帰あちこちでreturn
吊り?
- 830 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 16:00:57 ]
- >>813
そんな特定のアーキテクチャに依存した話を突然持ち出されてもねえ、、、
- 831 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 16:07:36 ]
- >>829
> >なんでも再帰あちこちでreturn > 吊り? 釣りでもなんでもない。ifやswitchが文でなく式なら、 return if (hoge) true else false; みたいに書けるのに(3項演算子は可読性が低いから却下)、 そうでないから、 if (hoge) return true; else return false; というように書かざるをえない、ってだけ。
- 832 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 17:15:50 ]
- 3項演算子に対する嫌悪感って goto のそれに似たものがあるな
- 833 名前:デフォルトの名無しさん mailto:晒すとするか [2008/02/20(水) 17:18:18 ]
- 3項演算子とgotoじゃ全然違うだろ・・・これだからgoto厨は・・・
- 834 名前:デフォルトの名無しさん [2008/02/20(水) 18:46:16 ]
- 3項演算子はネストしない限りif文よりも可読性高い場合もあるだろ
特に>>831のような単純な分岐の場合は。どうせ見た目で毛嫌いして るだけだろうけど。
- 835 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 18:48:46 ]
- >>834
ネストしたって適切なカッコさえつければ問題ないだろ。 特に>>831の場合には積極的に3項演算子を使うべき箇所と思われ。
- 836 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 18:56:34 ]
- それは再帰とは呼ばない。
ということだけは覚えてほしい
- 837 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 18:59:35 ]
- if 文のみで書こうとすると異常にネスティングが増えるケースについて
3項演算子をif文とともに使って、ネスティングを削減すると、コードがすっきりするので好きだ。
- 838 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 19:16:21 ]
- 例えばループで書くと
foo() { cond = true while (cond) { ・・・ ・・・ if (...) { cond = false } ・・・ ・・・ } } みたいな構造で、condのようなスコープの広い変数が 必要になるのが、再帰で処理するように書き直せば、 foo() { ・・・ ・・・ if (!...) { foo() } ・・・ ・・・ } で済む、かもしれない、ってこと。
- 839 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 19:19:27 ]
- >>836
再帰かどうかが、returnがif文の中か3項演算子の外かで左右されるとでも?
- 840 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 19:33:38 ]
- >>838
でっていう
- 841 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 19:48:45 ]
- >>838
いや、皆が問題にしてるのはそういうことではなく while (cond) { int i; .... } みたいなスタック操作の無駄のことと思われ。
- 842 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 21:19:37 ]
- 末尾再帰でもないのに、それは・・・
- 843 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 22:22:30 ]
- >>838の
foo() { cond = true; while (cond) { s1;s2; if (...) {cond = false} s3;s4; } } これは、condが2回目のループでfalseになるとすると、 s1,s2,s3,s4,s1,s2,s3,s4の順で実行される。 で、 foo() { s1;s2; if (!...) {foo();} s3;s4; } これは、2回目のループで(!...)がfalseになるとすると、 s1,s2,s1,s2,s3,s4,s3,s4で実行されるから順番が変わる。そこでs3;s4をifの前に持ってくるわけだ。 すると、 foo() { _loop: s1;s2;s3;s4 if(...) goto _loop; } みんな末尾再帰でgoto使う?
- 844 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 22:24:12 ]
- 末尾再帰をgotoにするのはコンパイラのお仕事。
- 845 名前:デフォルトの名無しさん mailto:sage [2008/02/21(木) 02:28:28 ]
- 再帰使うならgotoはいらん。
(再帰を中断するときには使うかもしれん)
- 846 名前:デフォルトの名無しさん mailto:sage [2008/02/21(木) 05:40:03 ]
- つかそれはdo{}while(..);
- 847 名前:デフォルトの名無しさん mailto:sage [2008/02/21(木) 07:36:46 ]
- >>843が全然末尾再帰になっていない件について
- 848 名前:goto使わなければそれがいい派 mailto:sage [2008/02/21(木) 10:34:02 ]
- >>751
まあ、そういうコードが含まれているプログラムの中には 脆弱性だのバグだのいっぱい含まれているものだ。 セキュリティについて、潔癖で有名なDJBですら、結構gotoを 多くつかう。 まったく使わないで終わらせた作品としては は、比較的私家版パッチの突っ込みが少ない publicfile くらい。 後は山のようにgoto文があってDJBは嫌いだという人間もいる。
- 849 名前:デフォルトの名無しさん mailto:sage [2008/02/21(木) 10:37:28 ]
- >>841
{} がつくと何でも変数スコープを狭く取りたがるつか、 同じ変数を使いまわしてもバグにならないというか、 単たる手抜きか。
- 850 名前:デフォルトの名無しさん mailto:sage [2008/02/21(木) 14:08:08 ]
- pascalみたいに手続きの最初で全部まとめて宣言しろ
- 851 名前:デフォルトの名無しさん mailto:sage [2008/02/21(木) 15:58:33 ]
- >>841
それも違うだろ。それくらい最適化でどうにでもできる。
- 852 名前:デフォルトの名無しさん mailto:sage [2008/02/21(木) 20:22:54 ]
- >>845
ハァ?再帰からgotoで抜けるだぁ? これだからgoto厨は…
- 853 名前:デフォルトの名無しさん mailto:sage [2008/02/21(木) 21:49:55 ]
- 再帰からgotoどころかlongjmpだってしちゃうぜ!
- 854 名前:デフォルトの名無しさん mailto:sage [2008/02/21(木) 21:59:56 ]
- よーし、俺はexitだ。
- 855 名前:デフォルトの名無しさん [2008/02/21(木) 22:41:57 ]
- いいこと思いついた。
お前ら俺のプログラムのケツにストリームデータ流し込んで実行してみろ。
- 856 名前:デフォルトの名無しさん mailto:sage [2008/02/21(木) 22:50:35 ]
- >>855
えっ!お前のケツにすとりーむでーtlk;ghklj;
- 857 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 07:15:04 ]
- >>851
そんな最適化をされたらデストラクタロギングが使えなくなるじゃないか!!
- 858 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 13:10:22 ]
- >>857
コンストラクタ・デストラクタが呼ばれなくなるような最適化なんて行われるわけないだろ。 少なくともC++では。
- 859 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 19:14:27 ]
- いずれ呼ばれるにしても、呼ばれるタイミングは変わるかもよ?
- 860 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 22:05:58 ]
- >>859
どこの規格無視コンパイラだ?
- 861 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 23:47:10 ]
- gotoを使う想定でロジックを組むなら、それを分かりやすく図示する方法を発明してから
にしてほしい。そうじゃないとレビューする気にもなれない。 ここで出たようなgotoを使った書き直しの例なら、gotoを使ってないロジックを例えば NSチャートとかで書いた方が、とてもとても分かりやすくて人にも説明し安いだろう。 チームメイトにロジックを説明するようにお願いてフローチャートをもってこられたら、 とりあえずバケツもって廊下に立っててくれるようにお願いしちゃうな。 システムが使われなくなるまでその人が死なずに内容も忘れずに保守するってのが保証さ れてたとしても、仕事ではそんなロジックは受け入れ難いな。 だいたい現実的にgotoを使った方が良い場合ってのが、想定しづらい。 リソースだのコードサイズだののためのためにgotoを使うってのは、やらないと用件が 満たせないからって理由で、設計とかコーディングとかのさらに後に最適化フェーズを 設けてそこでやるんなら認めなくもないが、元からgotoを使うのが正しい場合なんての を考慮しながらロジックを考えるような人とは一緒に仕事はできないなぁと思う。 なんでそんな書き方になってるか説明するための資料も作んないといけないし、仕事が 増えるばっかりだ。段階的抽象化とか物事を整理するとかに興味がないかできない人な んだなとしか思えない。 誰かが事故にあってもリカバリがきくような状態を維持しようと思ったら、少しくらい 冗長になっても、なるべくわかりやすい設計&実装にしたいって思うのは普通だと思う んだがなぁ。
- 862 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 23:56:49 ]
- わたしはソース読み力がありません。
まで読んだ。
- 863 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 06:15:25 ]
- >>862は>>861を読む力がありません
まで読んだ。
- 864 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 06:38:46 ]
- resource *hoge(int arg) /*失敗でNULL、成功でリソース(p4)を返す*/
{ resorce *p1 = NULL,*p2 = NULL,*p3 = NULL, *p4 = NULL; p1 = GetResource1(arg); /* GetResoruce*は失敗した時にNULLを返す */ if(!p1) goto failed; 処理1 p2 = GetResource2(p1); if(!p2) goto failed; 処理2 p3 = GetResource3(p1,p2); if(!p3) goto failed; 処理3 p4 = GetResource4(p3); if(!p4) goto failed; 処理4 FreeResource(p3); FreeResource(p2); FreeResource(p1); return p4; failed: if(p4) FreeResource4(p4); if(p3) FreeResource3(p3); if(p2) FreeResource2(p2); if(p1) FreeResource1(p1); return NULL; } これgoto使わないとどう書く?もちろんスマートポインタ、GC、例外は使用不可。
- 865 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 06:43:29 ]
- >>864
もうそれ飽きた。いいかげん空気読め、アフォ。
- 866 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 06:45:43 ]
- 各GetResourceの前にifつけてやって、
処理4
- 867 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 06:52:11 ]
- p1 = GetResource1(arg);
if(p1) { 処理1 p2 = GetResource2(p1); if(p2) { 処理2 p3 = GetResource3(p1,p2); if(p3) { 処理3 p4 = GetResource4(p3); if(p4) { 処理4 } } } } if (p3) FreeResource(p3); if (p2) FreeResource(p2); if (p1) FreeResource(p1); return p4;
- 868 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 06:58:18 ]
- 俺の感覚だと、読んだだけで「ああ失敗なんだな」って分かる>>864のが好きなんだよね。
あとネストが深くならないのが。
- 869 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 07:02:22 ]
- >>868
処理そのものがネスト構造になっているんだから、 コードもネストしたほうが実態がわかっていいんじゃねーの?
- 870 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 07:03:52 ]
- >>863
なにがそんなに悔しいの?
- 871 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 07:05:33 ]
- ↓いつものgdgdな展開へ・・・
- 872 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 07:05:36 ]
- >>869
なるほどねー。 >>870 いや別に。リソース確保でネストさせるのが嫌いだってだけで。
- 873 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 07:07:28 ]
- 自演シッパイ、オツwwww
- 874 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 07:08:19 ]
- gdgdだな
- 875 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 07:08:50 ]
- >>872
リソース確保の条件がネストしているのだから、 コードもネストしたほうが実態がわかっていいんじゃねーの?
- 876 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 07:09:53 ]
- アンカー打ち間違える奴は、gotoでもラベル打ち間違えるに決まってる件について。
- 877 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 07:10:19 ]
- >>875
なるほどねー。
- 878 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 07:11:50 ]
- >>876
>>870の>>863を>>869に読み間違えてたわwww
- 879 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 07:12:06 ]
- 処理1〜3にもよるだろう。
短いならいいけど、長ければネストしたくないって人もいるだろう。 あと、エラーならその場で関数から抜けたいタイプのひともいるし、 あれだけじゃなんとも。
- 880 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 07:12:17 ]
- あ、上の>>869は>>868ねwwwww
- 881 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 07:13:09 ]
- わざとだろwwww
- 882 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 07:14:03 ]
- >>881
>>878⇒>>880はねwwww読み間違えてたのはホント。
- 883 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 07:14:41 ]
- gdgdだーwww
- 884 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 07:15:37 ]
- >>879
ネストしたくなきゃ、 if (p1 && p2 && ...) { とすればいいだけなんじゃ?
- 885 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 07:19:58 ]
- >>879
たった3つの解放だけなんだから、解放をマクロにしちゃって goto failedのかわりにFreeAll; return NULL;しちゃってもいいな。 いずれにせよ、このネタはもうイトフユだろ。
- 886 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 07:47:58 ]
- ネストするなとか、あいかわらず後出しジャンケンなんだね、goto厨は…
まあその後出しジャンケンも>>885で残念賞なわけだがw
- 887 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 07:52:42 ]
- ↑と、ここまでいつものgdgdな展開ですた。
- 888 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 08:06:03 ]
- 嫌goto厨は「異議あり対案なし」であることが証明されました。
- 889 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 08:25:52 ]
- >>882
リアルでアンカー読み違える香具師がgotoを使うのは キ チ ガ イ に 刃 物
- 890 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 08:27:06 ]
- >>888
gotoを使わない対案ならこの短い間に3つも出ましたが何か?
- 891 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 08:31:07 ]
- 「出る」と「出す」の違いくらいわかってもいいとおもうぞ。
- 892 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 08:47:16 ]
- >>891
おいおい、>>888の主語は「嫌goto厨は」なんだから、 gotoを使わない対案が出ていればそれで十分に反証になるだろw
- 893 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 09:25:38 ]
- 自分の他人の区別さえつかないのか、かわいそうに。
- 894 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 09:32:55 ]
- 他人が書こうが誰が書こうがgotoを使わない対案であることに何の変わりもないが?
- 895 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 09:37:31 ]
- 嫌goto厨は「異議あり対案なし」であることが証明されました。
- 896 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 09:58:53 ]
- >>895
gotoを使わない対案ならこの短い間に3つも出ましたが何か?
- 897 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 10:01:08 ]
- それがなにか?
- 898 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 10:06:18 ]
- いいよ〜gdgdいいよ〜
- 899 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 10:09:56 ]
- 864のgotoは不要ということで。
- 900 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 10:39:25 ]
- 俺の感覚だと、見た瞬間に 864>>>867 なんだがなあ。
えーとさ。FAILEDっていうラベルの存在自体が 「物凄くソースコードの見通しを良くする、これ以上無い最高のコメント」 だと思うんだよ。
- 901 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 10:51:29 ]
- >>900=>>864 オツw
- 902 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 10:55:29 ]
- >>901
goto派が一人しかいないと思ってるなら、 君はたった一人のgoto厨に向かって何を必死に反論しているのかしら?w
|

|