次スレを立てる時は本文の1行目に以下を追加して下さい。
!extend:on:vvvvv:1000:512
C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。
前スレ
C++相談室 part137 (正しくはpart138)
http://mevius.5ch.net/test/read.cgi/tech/1535353320/
このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.103【環境依存OK】
https://mevius.5ch.net/test/read.cgi/tech/1530384293/
■長いソースを貼るときはここへ。■
http://codepad.org/
https://ideone.com/
[C++ FAQ]
https://isocpp.org/wiki/faq/
http://www.bohyoh.com/CandCPP/FAQ/ (日本語)
----- テンプレ ここまで -----
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
探検
C++相談室 part139
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ f65b-zn+7)
2018/10/06(土) 00:59:48.54ID:CdYUXXMG0521デフォルトの名無しさん (ワッチョイ e3b3-zhOP)
2018/11/24(土) 20:51:25.26ID:F/l20HKb0522デフォルトの名無しさん (ワッチョイ e3b3-zhOP)
2018/11/24(土) 20:52:49.16ID:F/l20HKb0 今後ともC++を覚える気は無い、なんてどこにも書いてなかったしな
(さすがにそれだったら俺も「Cでええやろ」と思うけど)
(さすがにそれだったら俺も「Cでええやろ」と思うけど)
523はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 6f6f-zhOP)
2018/11/24(土) 22:01:12.79ID:yk09TxVj0 >>521
事情に配慮せずそこらへんの書籍を適用したって上手いこといかんという単純な話じゃないの。
事情に配慮せずそこらへんの書籍を適用したって上手いこといかんという単純な話じゃないの。
524デフォルトの名無しさん (ブーイモ MM1f-LZ6j)
2018/11/24(土) 23:33:07.16ID:MFu7deOdM525デフォルトの名無しさん (ワッチョイ c380-1YVs)
2018/11/24(土) 23:37:53.13ID:or35NFsF0 C++ではいろんなもんが作られてる
クリティカルなシロモノでスクリプトが使われることなんか滅多にない
クリティカルなシロモノでスクリプトが使われることなんか滅多にない
526デフォルトの名無しさん (ワッチョイ ff12-1YVs)
2018/11/25(日) 00:13:09.35ID:zFZWesGa0 要するに本を口実にして人間の能力を制限したいってことでしょう
ンなモンC++の理念には全く反してるんじゃあないスかね
そいつの能力の限界まで迫れなきゃあC++を使う意味なんてないよ
会社の教育目的なんだろうけど「本に書いてあること以上はするな」ってのは
公教育の理念に縛られたクズが言いそうなこと
他人の能力にストッパー掛けて制限したいための口実に過ぎない
だからBetter Cとかは全く関係ない
ただ単に目的は「そいつの能力を制限したい」
これだけ
ンなモンC++の理念には全く反してるんじゃあないスかね
そいつの能力の限界まで迫れなきゃあC++を使う意味なんてないよ
会社の教育目的なんだろうけど「本に書いてあること以上はするな」ってのは
公教育の理念に縛られたクズが言いそうなこと
他人の能力にストッパー掛けて制限したいための口実に過ぎない
だからBetter Cとかは全く関係ない
ただ単に目的は「そいつの能力を制限したい」
これだけ
527デフォルトの名無しさん (ワッチョイ ff12-1YVs)
2018/11/25(日) 00:21:47.13ID:zFZWesGa0528デフォルトの名無しさん (ワッチョイ e3b3-zhOP)
2018/11/25(日) 00:55:56.60ID:/03oe8m30 こういう中二病みたいなやつ増えたな
こういうのに限って一度もまともなソフト書き上げてない
こういうのに限って一度もまともなソフト書き上げてない
529デフォルトの名無しさん (ワッチョイ 83b3-A3/R)
2018/11/25(日) 01:11:41.31ID:0mYB5fkb0 リファクタリングすると重いソフトになる。
何故なのか。
何故なのか。
530デフォルトの名無しさん (ワッチョイ 53ea-zhOP)
2018/11/25(日) 03:06:29.17ID:dzula6mP0 >489みたいなのは、よくあることだろう?
大抵はコーディング規約で、なんらか制限したりとかしていると思うけど。
そもそもC++を使えるプログラマが、そんなにいるとは思えない。
EffectiveC++を知らない(”読んでない”でなく)プログラマも数多くいる。
チーム全員がと言うことになると、一番下の人に合わせることになるだろう。
大抵はコーディング規約で、なんらか制限したりとかしていると思うけど。
そもそもC++を使えるプログラマが、そんなにいるとは思えない。
EffectiveC++を知らない(”読んでない”でなく)プログラマも数多くいる。
チーム全員がと言うことになると、一番下の人に合わせることになるだろう。
531デフォルトの名無しさん (ワッチョイ cf80-fhi1)
2018/11/25(日) 04:44:35.38ID:bdma9Nzw0 1. 入門書
2. Effective 何々
3. 逆引き・レシピ本
4. メタプログラミング
どの言語でも、この順番。
3まで読んで、そこからプロ!
1だけの開発者は、素人だろw
2. Effective 何々
3. 逆引き・レシピ本
4. メタプログラミング
どの言語でも、この順番。
3まで読んで、そこからプロ!
1だけの開発者は、素人だろw
532デフォルトの名無しさん (ワッチョイ 83b3-BCID)
2018/11/25(日) 05:21:48.71ID:0mYB5fkb0 高橋マナ著やさしいC++。
533デフォルトの名無しさん (ワッチョイ cf81-GWSg)
2018/11/25(日) 07:41:16.76ID:tOsyjBp30 C++ boost.asioについて質問です。
boost::asio::ip::tcp::acceptorのasync_acceptはスレッドセーフ?
サーバーを実装するとき1ポートで1acceptorになるはずだけど
このacceptorは複数のスレッドからasync_acceptしても大丈夫?
一つのacceptorを複数のスレッドでacceptするのはパフォーマンスの観点からも良いですか?
boost::asio::ip::tcp::acceptorのasync_acceptはスレッドセーフ?
サーバーを実装するとき1ポートで1acceptorになるはずだけど
このacceptorは複数のスレッドからasync_acceptしても大丈夫?
一つのacceptorを複数のスレッドでacceptするのはパフォーマンスの観点からも良いですか?
534679 (アウアウカー Sa87-ZX3B)
2018/11/25(日) 08:03:57.75ID:ae+bi37xa >>531
ポイントカードやクレジットカードのデータを読み込んで表示させるプログラム自作する営業がいる一方で、
プログラマーとして入って何も出来ない奴もいる。
(こう言うのは早々に消えるが)
実力じゃなくて、何が主な収入かでプログラマーと言われてる所はある。
まあ、あれはプログラマーが外人で、都合の悪い事は認めないから証拠集めに仕方なく覚えたスキルってのもあったかもだけど。
ポイントカードやクレジットカードのデータを読み込んで表示させるプログラム自作する営業がいる一方で、
プログラマーとして入って何も出来ない奴もいる。
(こう言うのは早々に消えるが)
実力じゃなくて、何が主な収入かでプログラマーと言われてる所はある。
まあ、あれはプログラマーが外人で、都合の悪い事は認めないから証拠集めに仕方なく覚えたスキルってのもあったかもだけど。
535デフォルトの名無しさん (ワッチョイ 239d-A3/R)
2018/11/25(日) 09:47:53.23ID:2raeFUr40536デフォルトの名無しさん (ワッチョイ e3f2-/G1A)
2018/11/25(日) 10:03:03.47ID:x3zl9kFB0 そんなものあるのか
537デフォルトの名無しさん (ワッチョイ cfeb-Kv/S)
2018/11/25(日) 10:55:12.29ID:muUUE+vN0538デフォルトの名無しさん (ワッチョイ ffb3-I6zH)
2018/11/25(日) 11:08:44.99ID:RzG0cEVO0 >>529
それアホなリファクタリングしてるだけだろ w
それアホなリファクタリングしてるだけだろ w
539デフォルトの名無しさん (ラクッペ MMc7-GbSM)
2018/11/25(日) 15:23:23.22ID:kV357oGtM OOPをやりたいんですけど、C++やったことありません
Smalltalkを勉強したほうがいいですか?
Smalltalkを勉強したほうがいいですか?
540デフォルトの名無しさん (ワッチョイ cf3f-zhOP)
2018/11/25(日) 16:02:56.45ID:FjBIbaie0 そういうアプローチもあるだろうね
求めるものがサイエンスなのかテクノロジーなのかで
選んだらいい
求めるものがサイエンスなのかテクノロジーなのかで
選んだらいい
541デフォルトの名無しさん (ワッチョイ cf81-GWSg)
2018/11/25(日) 17:20:24.93ID:tOsyjBp30542デフォルトの名無しさん (アウアウウー Sa47-+RRK)
2018/12/04(火) 20:28:11.90ID:/xOJWoqIa メンバ関数の末尾に&や&&がつくのって何か意味があるのですか?
constやnoexcept、volatileはわかるのですが・・・
constやnoexcept、volatileはわかるのですが・・・
543デフォルトの名無しさん (ワッチョイ 8a7e-C0zt)
2018/12/04(火) 20:36:07.22ID:JesHgwEq0 >>542
これのことか?
https://cpprefjp.github.io/lang/cpp11/ref_qualifier_for_this.html
おそらくほとんどの人が知らないだろうし俺も使ったことがない
これのことか?
https://cpprefjp.github.io/lang/cpp11/ref_qualifier_for_this.html
おそらくほとんどの人が知らないだろうし俺も使ったことがない
544デフォルトの名無しさん (ワッチョイ 4eeb-o5Pc)
2018/12/04(火) 20:57:45.56ID:17CDnqE60 代入演算子に左辺値参照修飾しとくと、右辺値に代入できなくなったりする
他はなんかあるかな・・・
他はなんかあるかな・・・
545デフォルトの名無しさん (アウアウウー Sa47-+RRK)
2018/12/04(火) 21:58:17.69ID:/xOJWoqIa C++11で追加だったのね。ありがとうこざいます。
546デフォルトの名無しさん (ワッチョイ 1a23-GcNG)
2018/12/05(水) 00:32:10.11ID:IHVRryeE0 https://kagasu.hatenablog.com/entry/2017/05/02/120156
このページで、例えば
ifs.imbue(locale(locale::empty(), new codecvt_utf16<wchar_t, 0x10ffff, consume_header>));
というのがあって、locale()の第二引数でnewされたものがありますが、
これをdeleteする記述が見当たりません。
他のページでも同様です。
リークしてそうで怖いのですが、一体どこでdeleteされてるんでしょうか??
このページで、例えば
ifs.imbue(locale(locale::empty(), new codecvt_utf16<wchar_t, 0x10ffff, consume_header>));
というのがあって、locale()の第二引数でnewされたものがありますが、
これをdeleteする記述が見当たりません。
他のページでも同様です。
リークしてそうで怖いのですが、一体どこでdeleteされてるんでしょうか??
547デフォルトの名無しさん (ワッチョイ 4eeb-o5Pc)
2018/12/05(水) 01:09:33.49ID:TcB8ybQf0 >>546
参照カウント方式で管理されてて、デストラクタでdeleteされます
参照カウント方式で管理されてて、デストラクタでdeleteされます
548546 (ワッチョイ 1a23-GcNG)
2018/12/05(水) 01:12:09.10ID:IHVRryeE0549デフォルトの名無しさん (ワッチョイ dbe7-hzet)
2018/12/05(水) 18:46:56.03ID:ASlfAML90 普通にどうプログラムを書いていいのかわらないので
質問したいのですがよろしいですか?
すれ違いならすいません
質問したいのですがよろしいですか?
すれ違いならすいません
550デフォルトの名無しさん (ワッチョイ 1723-C97y)
2018/12/05(水) 18:51:05.82ID:kX9gokKe0 書いてみ
551デフォルトの名無しさん (ワッチョイ dbe7-hzet)
2018/12/05(水) 19:04:59.96ID:ASlfAML90 図1
000
000
000
図1の0の部分を0から9までのすべての数字に置き換えたものを
表示して変数に格納する
図では3X3にしましたがnXnだとしてください。
説明が下手かもしれませんがよろしくお願いします
000
000
000
図1の0の部分を0から9までのすべての数字に置き換えたものを
表示して変数に格納する
図では3X3にしましたがnXnだとしてください。
説明が下手かもしれませんがよろしくお願いします
552デフォルトの名無しさん (ワッチョイ 1723-C97y)
2018/12/05(水) 19:17:46.46ID:kX9gokKe0 0から9までのすべての数字は10個あるが
場所は9個しかないがどうするの
場所は9個しかないがどうするの
553デフォルトの名無しさん (アウアウウー Sa47-+RRK)
2018/12/05(水) 19:19:02.10ID:A1G7ulzba 表示も必要?
554デフォルトの名無しさん (ワッチョイ dbe7-hzet)
2018/12/05(水) 19:34:26.69ID:ASlfAML90 説明が下手ですいません
236
000
011
こんな感じで9か所すべてに0から9まで入ったものを全パターン格納したいです
236
000
011
こんな感じで9か所すべてに0から9まで入ったものを全パターン格納したいです
555デフォルトの名無しさん (ワッチョイ 237f-C0zt)
2018/12/05(水) 19:44:08.41ID:3dIXAL6A0 変数に全パターン格納するのは死ぬほどメモリ食うな
556デフォルトの名無しさん (ワントンキン MM8a-y+3m)
2018/12/05(水) 19:51:44.72ID:SKoNUOBmM 294
753
618
753
618
557デフォルトの名無しさん (ワッチョイ dbe7-hzet)
2018/12/05(水) 19:55:45.26ID:ASlfAML90 .csvにして出力したいので
excelで手打ちするよりはいいのかなと
excelで手打ちするよりはいいのかなと
558デフォルトの名無しさん (ブーイモ MM67-ZETi)
2018/12/05(水) 20:42:06.10ID:GtowYFeTM たぶん、20GBほど必要だけどいいんか?
全パターンにこだわらず、乱数で必要な数だけ生成したほうが良いのでは?
全パターンにこだわらず、乱数で必要な数だけ生成したほうが良いのでは?
559デフォルトの名無しさん (ブーイモ MM67-ZETi)
2018/12/05(水) 20:46:39.65ID:GtowYFeTM おっとinodeの最小サイズがあるから100倍くらいかしら
560デフォルトの名無しさん (ワッチョイ 0bb3-Gcmv)
2018/12/05(水) 21:02:47.61ID:OZlj6GiF0 それは3*3を1次元で考えると
0 0 0 0 0 0 0 0 0
から1ずつ増やして
9 9 9 9 9 9 9 9 9
まで表示して全パターンを変数に格納ってこと?
単純に1桁1バイトで考えると1パターンにつき9桁9バイト必要なので、格納領域だけで9000000000バイト=約8.4ギビバイト必要なんだけどそういうこと?
1000パターン/秒の速度で表示したとしても104日かかる計算になる。
課題か何か知らないけど、問題を勘違いしてるのでは?
0 0 0 0 0 0 0 0 0
から1ずつ増やして
9 9 9 9 9 9 9 9 9
まで表示して全パターンを変数に格納ってこと?
単純に1桁1バイトで考えると1パターンにつき9桁9バイト必要なので、格納領域だけで9000000000バイト=約8.4ギビバイト必要なんだけどそういうこと?
1000パターン/秒の速度で表示したとしても104日かかる計算になる。
課題か何か知らないけど、問題を勘違いしてるのでは?
561デフォルトの名無しさん (ワッチョイ 1a61-2OVW)
2018/12/05(水) 21:04:45.27ID:zPVAi42/0 >>551
0からN×N桁の 10進数
0からN×N桁の 10進数
562デフォルトの名無しさん (ワッチョイ 0bb3-hzet)
2018/12/05(水) 21:04:58.31ID:RkaIFTNe0 3*3だったら要素数9の配列を用意してループで回せばいいだけじゃないの?
563デフォルトの名無しさん (ワッチョイ 1a12-y69T)
2018/12/05(水) 21:12:05.38ID:8vnwU0Eo0 9!≒36万行のcsvが欲しいのか?
4x4だと16通りで16!=20?922?789?888?000
おおよそ21京行のcsvファイルが出来上がる
5x5だとwikipediaにもoeisにも載ってないが
15,5112,1004,3330,9859,8400,0000 らしいので
15.5穣行のcsvファイルが出来上がる
Yが一歩手前の??なんで、世界中の記憶媒体を寄せ集めても足りるかどうか・・・
6x6だと36!の
37,1993,3267,8990,1217,4679,9944,8150,8352,0000,0000
37正
csvファイルを作り終える前に人類滅亡するレヴェル
4x4だと16通りで16!=20?922?789?888?000
おおよそ21京行のcsvファイルが出来上がる
5x5だとwikipediaにもoeisにも載ってないが
15,5112,1004,3330,9859,8400,0000 らしいので
15.5穣行のcsvファイルが出来上がる
Yが一歩手前の??なんで、世界中の記憶媒体を寄せ集めても足りるかどうか・・・
6x6だと36!の
37,1993,3267,8990,1217,4679,9944,8150,8352,0000,0000
37正
csvファイルを作り終える前に人類滅亡するレヴェル
564デフォルトの名無しさん (ワッチョイ dbe7-hzet)
2018/12/05(水) 21:19:06.30ID:ASlfAML90 実際に必要なのは160万通りぐらいだけど無理?
無理なら諦めます
無理なら諦めます
565さまよえる蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ 0bb3-ReFT)
2018/12/05(水) 21:23:57.37ID:wa0lRPZw0 全ての場合分けを検討できないから、枝刈りしようよ。
566デフォルトの名無しさん (ワッチョイ dbe7-hzet)
2018/12/05(水) 21:25:59.07ID:ASlfAML90 すいません諦めます
ありがとうございました
ありがとうございました
567デフォルトの名無しさん (ワッチョイ 0bb3-hzet)
2018/12/05(水) 22:03:07.79ID:RkaIFTNe0 諦めたらそこで終了だよ!!!
568さまよえる蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ 0bb3-ReFT)
2018/12/05(水) 22:07:49.82ID:wa0lRPZw0 糸冬 了
569デフォルトの名無しさん (ワッチョイ 5a23-+RRK)
2018/12/05(水) 22:08:02.64ID:u9wJX+Xt0 全パターン網羅じゃなくてピックアップでいいなら乱数という手段もありでは
570デフォルトの名無しさん (ワッチョイ 0bb3-hzet)
2018/12/05(水) 22:14:00.75ID:RkaIFTNe0 蟻ちゃん、なに終わらせてんのさ。
571デフォルトの名無しさん (アウアウウー Sa47-6Zjp)
2018/12/05(水) 22:59:00.47ID:9Lrh1TK3a 乗り遅れた…
鏡像とか回転の扱いをどうするかとか
楽しそうな課題だな
鏡像とか回転の扱いをどうするかとか
楽しそうな課題だな
572はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5b6f-n9Ol)
2018/12/06(木) 04:47:25.11ID:bHPTeUA/0 N×N のテーブルを N 種類の値同士の演算結果と考えて
その演算結果が群の性質を満たすパターンだけを取り出す
というような課題はやったことがあるな。
群論的には値の個性は意味がなくて、
たとえば全ての 1 と全ての 2 を交換したようなパターンは
等しいという扱いになってしまうので、
それを除去するのが面倒だった。
いや、この話題の流れには関係ない話なんだけど >>571 を見て思い出したもんだから。
その演算結果が群の性質を満たすパターンだけを取り出す
というような課題はやったことがあるな。
群論的には値の個性は意味がなくて、
たとえば全ての 1 と全ての 2 を交換したようなパターンは
等しいという扱いになってしまうので、
それを除去するのが面倒だった。
いや、この話題の流れには関係ない話なんだけど >>571 を見て思い出したもんだから。
573デフォルトの名無しさん (ワッチョイ 6107-1cCS)
2018/12/06(木) 07:30:52.06ID:OnZIks560 日記帳
574デフォルトの名無しさん (ワントンキン MMd3-016C)
2018/12/06(木) 10:06:21.52ID:ijJePQDkM ZDDかお姉さん問題でggr
575デフォルトの名無しさん (JP 0Hdd-FsKt)
2018/12/06(木) 23:01:59.32ID:CWnIHGMVH vector A に vector B を部分代入することってできないの?
つまり、代入後は vector B が vector A の部分vectorになっててほしい
つまり、代入後は vector B が vector A の部分vectorになっててほしい
576さまよえる蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ 31b3-BEmb)
2018/12/06(木) 23:06:11.56ID:7A1Pu7RI0 insert
577デフォルトの名無しさん (ワッチョイ 13a2-n9Ol)
2018/12/07(金) 02:03:39.38ID:vYfFg2B+0 std::copyでどう?
578デフォルトの名無しさん (ワッチョイ 497b-Po2/)
2018/12/07(金) 02:14:13.85ID:MQVHpO7o0 部分vectorって言ってるから、Bを参照扱いで挿入出来ないかってことじゃないの?
Bを書き換えたらAにも反映されるみたいな。
まぁ、vectorじゃ構造上無理なんだけど。
Bを書き換えたらAにも反映されるみたいな。
まぁ、vectorじゃ構造上無理なんだけど。
579デフォルトの名無しさん (ワッチョイ 0123-GoBb)
2018/12/07(金) 14:42:20.03ID:lkrG/qbb0 slice
>>572
>N×N のテーブルを N 種類の値同士の演算結果と考えてその演算結果が群の性質を満たすパターンだけを取り出す
すごく興味がありますね…
準同型を検出するのが難しそうですが、ガウス吐き出し法で同一解(ただす解を小さいもの順に並べなおす)を弾くようにするだけでなんとかなりますか?
ググッてみると、位数12 の群のひとつは、巡回群でも巡回群の直積でもない、これより低位には現れなかった新たなパターン、らしいのです、これはどんな群なのか具体的に知りたいものです
>N×N のテーブルを N 種類の値同士の演算結果と考えてその演算結果が群の性質を満たすパターンだけを取り出す
すごく興味がありますね…
準同型を検出するのが難しそうですが、ガウス吐き出し法で同一解(ただす解を小さいもの順に並べなおす)を弾くようにするだけでなんとかなりますか?
ググッてみると、位数12 の群のひとつは、巡回群でも巡回群の直積でもない、これより低位には現れなかった新たなパターン、らしいのです、これはどんな群なのか具体的に知りたいものです
581デフォルトの名無しさん (ワッチョイ 2be8-5wwv)
2018/12/08(土) 08:26:12.03ID:qW/ttJcB0 >>580
とうほぐの人?
とうほぐの人?
582デフォルトの名無しさん (ワッチョイ f9c3-+0bq)
2018/12/08(土) 08:34:46.70ID:Cv6IL/oI0 小さい群ならいいだろうけど、散在型単純群が出てくるサイズになっても対応できるかな
583デフォルトの名無しさん (ワッチョイ 899f-QT7o)
2018/12/08(土) 13:35:08.63ID:cc77YSwU0 using FUNC = std::function<void(Params&)>;
struct Params {};
template<> std::tuple<> convert_params(const Params&) { return {}; }
template<> std::tuple<int> convert_params(Params& p) { return 0; }
template<typename... Args>
inline static auto message_handler(void(*func)(Args...))
{ return [=](Params& m) { std::apply(func, convert_params<std::tuple<Args...>>(p)); }; }
template<typename... Args>
inline static auto message_handler(std::function<void(Args...)> func)
{ return [=](Params& m) { std::apply(func, convert_params<std::tuple<Args...>>(p)); }; }
template<typename T, typename... Args>
inline static auto message_handler(void(T::*func)(Args...), T* obj)
{
assert(obj != nullptr);
return [=](Params& m)
{
std::apply(func,
std::tuple_cat(
std::tuple<T&>(*obj),
convert_params<std::tuple<Args...>>(p))
);
};
}
struct Params {};
template<> std::tuple<> convert_params(const Params&) { return {}; }
template<> std::tuple<int> convert_params(Params& p) { return 0; }
template<typename... Args>
inline static auto message_handler(void(*func)(Args...))
{ return [=](Params& m) { std::apply(func, convert_params<std::tuple<Args...>>(p)); }; }
template<typename... Args>
inline static auto message_handler(std::function<void(Args...)> func)
{ return [=](Params& m) { std::apply(func, convert_params<std::tuple<Args...>>(p)); }; }
template<typename T, typename... Args>
inline static auto message_handler(void(T::*func)(Args...), T* obj)
{
assert(obj != nullptr);
return [=](Params& m)
{
std::apply(func,
std::tuple_cat(
std::tuple<T&>(*obj),
convert_params<std::tuple<Args...>>(p))
);
};
}
584デフォルトの名無しさん (ワッチョイ 899f-QT7o)
2018/12/08(土) 13:35:36.54ID:cc77YSwU0 ↑の続き
前の投稿で定義した関数を使い、下記の通りに呼び出そうとしているのですが
std::functionを通さずにラムダ直で呼び出した場合に、なんとなく上手にやってくれる
方法がどうしても思いつけません。何か手はないでしょうか?
1 void myfunction(int);
FUNC func = message_handler(myfunction); // OK グローバル関数
2 void myclass::myfunction(int);
FUNC func = message_handler(myfunction, this); // OK メンバ関数
3 FUNC func = message_handler([](int){}); // NG ラムダ直
4 std::function<void(int)> myfunction = [](int){};
FUNC func = message_handler(myfunction); // OK std::function
前の投稿で定義した関数を使い、下記の通りに呼び出そうとしているのですが
std::functionを通さずにラムダ直で呼び出した場合に、なんとなく上手にやってくれる
方法がどうしても思いつけません。何か手はないでしょうか?
1 void myfunction(int);
FUNC func = message_handler(myfunction); // OK グローバル関数
2 void myclass::myfunction(int);
FUNC func = message_handler(myfunction, this); // OK メンバ関数
3 FUNC func = message_handler([](int){}); // NG ラムダ直
4 std::function<void(int)> myfunction = [](int){};
FUNC func = message_handler(myfunction); // OK std::function
585デフォルトの名無しさん (ワッチョイ 2beb-xqdQ)
2018/12/08(土) 13:43:44.31ID:7QrgfN7v0 頭に+つけると上手くいくと思う
FUNC func = message_handler(+[](int){});
FUNC func = message_handler(+[](int){});
586デフォルトの名無しさん (ワッチョイ 899f-QT7o)
2018/12/08(土) 14:25:14.54ID:cc77YSwU0587デフォルトの名無しさん (ワッチョイ 899f-QT7o)
2018/12/08(土) 14:29:45.48ID:cc77YSwU0 すみません、お礼を言い忘れています。
ありがとうございます。
ありがとうございます。
588デフォルトの名無しさん (ワッチョイ 2beb-xqdQ)
2018/12/08(土) 14:59:08.12ID:7QrgfN7v0589デフォルトの名無しさん (ワッチョイ d9e3-1aIk)
2018/12/09(日) 14:22:21.02ID:xJ41Kt/M0 突然すまんが、
winnt.h の中に次のような構造体定義があって、外部では、構造体タグ名
_RTL_CRITICAL_SECTION が不完全定義すらもされないで、
_RTL_CRITICAL_SECTION_DEBUG の中でポインタのために使用されている。
仮にこれで、「内部クラス」扱いにならないのだとすれば、
逆に、「内部クラス」を使いたい場合、もし完全定義を与える前に、
不完全なままポインタのために使いたい場合は、どうしたらいいのだろう?
typedef struct _RTL_CRITICAL_SECTION_DEBUG {
WORD Type;
WORD CreatorBackTraceIndex;
struct _RTL_CRITICAL_SECTION *CriticalSection;
LIST_ENTRY ProcessLocksList;
DWORD EntryCount;
DWORD ContentionCount;
DWORD Spare[2];
} RTL_CRITICAL_SECTION_DEBUG,*PRTL_CRITICAL_SECTION_DEBUG;
typedef struct _RTL_CRITICAL_SECTION {
PRTL_CRITICAL_SECTION_DEBUG DebugInfo;
LONG LockCount;
LONG RecursionCount;
HANDLE OwningThread;
HANDLE LockSemaphore;
DWORD Reserved;
} RTL_CRITICAL_SECTION,*PRTL_CRITICAL_SECTION;
winnt.h の中に次のような構造体定義があって、外部では、構造体タグ名
_RTL_CRITICAL_SECTION が不完全定義すらもされないで、
_RTL_CRITICAL_SECTION_DEBUG の中でポインタのために使用されている。
仮にこれで、「内部クラス」扱いにならないのだとすれば、
逆に、「内部クラス」を使いたい場合、もし完全定義を与える前に、
不完全なままポインタのために使いたい場合は、どうしたらいいのだろう?
typedef struct _RTL_CRITICAL_SECTION_DEBUG {
WORD Type;
WORD CreatorBackTraceIndex;
struct _RTL_CRITICAL_SECTION *CriticalSection;
LIST_ENTRY ProcessLocksList;
DWORD EntryCount;
DWORD ContentionCount;
DWORD Spare[2];
} RTL_CRITICAL_SECTION_DEBUG,*PRTL_CRITICAL_SECTION_DEBUG;
typedef struct _RTL_CRITICAL_SECTION {
PRTL_CRITICAL_SECTION_DEBUG DebugInfo;
LONG LockCount;
LONG RecursionCount;
HANDLE OwningThread;
HANDLE LockSemaphore;
DWORD Reserved;
} RTL_CRITICAL_SECTION,*PRTL_CRITICAL_SECTION;
590デフォルトの名無しさん (ワッチョイ d9e3-1aIk)
2018/12/09(日) 14:26:38.84ID:xJ41Kt/M0 確か、構造体タグ名は、ブロックに名前空間があって、C と C++ で仕様がごちゃごちゃしていた
気がした。
確か、既に定義がある場合は、それが定義された段階の名前空間を使うが、
完全に新規に定義する場合は、最も内側のブロックの名前空間に登録される、という
感じだった気がしたんだけど。
一度も外部では定義も宣言もしなかった場合、最も内側のブロックの名前空間に登録されるの
だとすれば、クラスや構造体内部の内部クラスに関してもそれの応用になって・・・、と思うんだが、
少なくとも、旧来の C のヘッダファイルでは、その解釈ではまずいことになっている気がする。
気がした。
確か、既に定義がある場合は、それが定義された段階の名前空間を使うが、
完全に新規に定義する場合は、最も内側のブロックの名前空間に登録される、という
感じだった気がしたんだけど。
一度も外部では定義も宣言もしなかった場合、最も内側のブロックの名前空間に登録されるの
だとすれば、クラスや構造体内部の内部クラスに関してもそれの応用になって・・・、と思うんだが、
少なくとも、旧来の C のヘッダファイルでは、その解釈ではまずいことになっている気がする。
591デフォルトの名無しさん (アウウィフ FF05-GoBb)
2018/12/09(日) 14:59:08.32ID:rgDJoSoNF struct _RTL_CRITICAL_SECTION;
って行があるんじゃね
って行があるんじゃね
592デフォルトの名無しさん (ワッチョイ 81f2-Po2/)
2018/12/09(日) 15:15:39.34ID:LCYDMKL+0 不完全な型はそれを解決する必要があるときに完全な定義が得られればいいんで、
それがどこの名前空間に存在するかについてもそのときに解決できればよかったはず。
それがどこの名前空間に存在するかについてもそのときに解決できればよかったはず。
593デフォルトの名無しさん (ワッチョイ d9e3-1aIk)
2018/12/09(日) 17:56:05.02ID:xJ41Kt/M0 >>591
無い気がする。
さっき思ったんだけど、C++ の場合、winnt.h の大部分は、extern "C" {・・・} で囲まれて
パースされて、旧来の C の仕様のままになるので、内部クラスの概念が無いから
あれでいいのかも知れない???
無い気がする。
さっき思ったんだけど、C++ の場合、winnt.h の大部分は、extern "C" {・・・} で囲まれて
パースされて、旧来の C の仕様のままになるので、内部クラスの概念が無いから
あれでいいのかも知れない???
594デフォルトの名無しさん (ワッチョイ d9e3-1aIk)
2018/12/09(日) 18:15:26.56ID:xJ41Kt/M0 >>592
_XXX_DEBUG の方で、_RTL_CRITICAL_SECTION を _XXX_DEBUG の構造体に所属する
「内部クラス」 に解釈してしまった場合、外側の _RTL_CRITICAL_SECTION では、
タグ名としては同じ名前であっても、コンパイラにとっては全くの別の構造体に見なされて
しまうので、たとえば、ポインタを代入する際に、
「異なるポインタ型への代入がある」
などのエラーが出る可能性がある。
_XXX_DEBUG の方で、_RTL_CRITICAL_SECTION を _XXX_DEBUG の構造体に所属する
「内部クラス」 に解釈してしまった場合、外側の _RTL_CRITICAL_SECTION では、
タグ名としては同じ名前であっても、コンパイラにとっては全くの別の構造体に見なされて
しまうので、たとえば、ポインタを代入する際に、
「異なるポインタ型への代入がある」
などのエラーが出る可能性がある。
595はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5b6f-n9Ol)
2018/12/09(日) 18:24:17.47ID:hgaiHSHh0596デフォルトの名無しさん (ワッチョイ 81f2-Po2/)
2018/12/09(日) 18:24:29.50ID:LCYDMKL+0 ?
その「内部クラス」 の定義は存在しないんだから。
その「内部クラス」 の定義は存在しないんだから。
597デフォルトの名無しさん (ワンミングク MMd3-OBga)
2018/12/10(月) 11:35:19.25ID:z9e5AxLyM 何のための不完全型かと
型の中身を意識する必要はない
リンケージなんか関係ない
型の中身を意識する必要はない
リンケージなんか関係ない
598デフォルトの名無しさん (ワッチョイ 937c-1aIk)
2018/12/10(月) 13:10:56.95ID:Hs8Qkrq90 >>597
不完全定義でも、厳密にどの構造体かは区別されている。
不完全定義でも、厳密にどの構造体かは区別されている。
599デフォルトの名無しさん (ワッチョイ 73a5-n9Ol)
2018/12/10(月) 21:40:39.61ID:merQK3Z90 不完全型でいけそう
https://ideone.com/SFcGAQ
内部クラスと解釈はされないみたい(内部クラスと解釈されたらリンクリストで困るような)
https://ideone.com/DcYHNu
詳しい仕様は誰かプリーズ
https://ideone.com/SFcGAQ
内部クラスと解釈はされないみたい(内部クラスと解釈されたらリンクリストで困るような)
https://ideone.com/DcYHNu
詳しい仕様は誰かプリーズ
600デフォルトの名無しさん (ワッチョイ 937c-1aIk)
2018/12/10(月) 23:34:55.84ID:Hs8Qkrq90 >>599
>(内部クラスと解釈されたらリンクリストで困るような)
しかし、外部クラスと解釈される場合は、本当に内部クラスにしたい場合で、
それ自身が自己参照を持つリンクリストにしたいような場合に、逆に困る
事になるかも知れない。
>(内部クラスと解釈されたらリンクリストで困るような)
しかし、外部クラスと解釈される場合は、本当に内部クラスにしたい場合で、
それ自身が自己参照を持つリンクリストにしたいような場合に、逆に困る
事になるかも知れない。
601デフォルトの名無しさん (ワッチョイ 81f2-Po2/)
2018/12/10(月) 23:43:57.33ID:ba1HqxVH0 struct Bの定義は内と外両方同時に存在し得て、検索順で近い方に解釈されるというだけだろ。
何を心配してるのか。
何を心配してるのか。
602デフォルトの名無しさん (ワッチョイ 937c-1aIk)
2018/12/10(月) 23:48:43.81ID:Hs8Qkrq90 >>601
別の名前空間の構造体だと解釈されれば、ポインタの代入も出来ない。
別の名前空間の構造体だと解釈されれば、ポインタの代入も出来ない。
603デフォルトの名無しさん (ワッチョイ 9333-xqdQ)
2018/12/11(火) 01:46:14.52ID:sJmjlCIC0 >>589
このようにしたらいい。
struct _RTL_CRITICAL_SECTION;
struct _RTL_CRITICAL_SECTION *CriticalSection;
https://timsong-cpp.github.io/cppwp/n4659/basic.lookup.elab#2
https://timsong-cpp.github.io/cppwp/n4659/basic.scope.pdecl#7
このようにしたらいい。
struct _RTL_CRITICAL_SECTION;
struct _RTL_CRITICAL_SECTION *CriticalSection;
https://timsong-cpp.github.io/cppwp/n4659/basic.lookup.elab#2
https://timsong-cpp.github.io/cppwp/n4659/basic.scope.pdecl#7
604デフォルトの名無しさん (ワッチョイ 81f2-Po2/)
2018/12/11(火) 08:05:37.73ID:ULPnecUk0 >>602
1つのコンパイル単位内でそれはないだろ。
1つのコンパイル単位内でそれはないだろ。
605デフォルトの名無しさん (ワッチョイ 899f-QT7o)
2018/12/11(火) 09:54:05.21ID:CMkzN/Tv0 >>589
変数の宣言をした時点で解決可能なクラスが使われるというしごく当たり前な結果に。
https://ideone.com/JyKDmi
https://ideone.com/gTeZlX
https://ideone.com/uPjViG
解決不可能だった場合は、一番近いnamespaceから選択される
https://ideone.com/LpC58v
変数の宣言をした時点で解決可能なクラスが使われるというしごく当たり前な結果に。
https://ideone.com/JyKDmi
https://ideone.com/gTeZlX
https://ideone.com/uPjViG
解決不可能だった場合は、一番近いnamespaceから選択される
https://ideone.com/LpC58v
606デフォルトの名無しさん (ワッチョイ 899f-QT7o)
2018/12/11(火) 10:10:46.46ID:CMkzN/Tv0 >>605の一番近いnamespaceからというのは嘘でした
×https://ideone.com/LpC58v
正しくは、解決不可能だった場合は、同じ階層から選択されるみたい。
AとBがともにNS2に存在する場合
https://ideone.com/m5leMs
コンパイルエラー。 AがNS2 Bがひとつ外側のNS
https://ideone.com/9IY4BC
同階層にBがない場合、グローバルからも選択されることはない。
https://ideone.com/cMhwpW
×https://ideone.com/LpC58v
正しくは、解決不可能だった場合は、同じ階層から選択されるみたい。
AとBがともにNS2に存在する場合
https://ideone.com/m5leMs
コンパイルエラー。 AがNS2 Bがひとつ外側のNS
https://ideone.com/9IY4BC
同階層にBがない場合、グローバルからも選択されることはない。
https://ideone.com/cMhwpW
607デフォルトの名無しさん (ワッチョイ 899f-QT7o)
2018/12/11(火) 10:13:00.28ID:CMkzN/Tv0608デフォルトの名無しさん (ワッチョイ d9e3-1aIk)
2018/12/11(火) 14:13:57.27ID:TeIOtXwo0 >>604
ある。
単に人間に見えているタグ名が同じというだけで、コンパイラ内部では、
全く別の識別番号(というより、通常、コンパイラ内部の構造体定義データの先頭アドレス)
になっており、タグ名が同じでも識別番号が異なれば、全く別物と扱われる場合がある。
ある。
単に人間に見えているタグ名が同じというだけで、コンパイラ内部では、
全く別の識別番号(というより、通常、コンパイラ内部の構造体定義データの先頭アドレス)
になっており、タグ名が同じでも識別番号が異なれば、全く別物と扱われる場合がある。
609デフォルトの名無しさん (ワッチョイ d9e3-1aIk)
2018/12/11(火) 15:07:44.16ID:TeIOtXwo0 >>603
ものすごい微妙な動きをするみたいだ・・・。
struct Base の定義を見てみると、外側に既に struct Data が定義されていても、
なぜか、Data は、「nested Data」すなわち、Baseの内部クラスの方を「参照」して
しまうらしい。規則性はどこにあるんだろう。まだ英文読んでないけど。
struct Node {
struct Node* Next; // OK: Refers to Node at global scope
struct Data* Data; // OK: Declares type Data
// at global scope and member Data
};
struct Data {
struct Node* Node; // OK: Refers to Node at global scope
friend struct ::Glob; // error: Glob is not declared, cannot introduce a qualified type ([dcl.type.elab])
friend struct Glob; // OK: Refers to (as yet) undeclared Glob at global scope.
/* ... */
};
struct Base {
struct Data; // OK: Declares nested Data
struct ::Data* thatData; // OK: Refers to ::Data
struct Base::Data* thisData; // OK: Refers to nested Data
friend class ::Data; // OK: global Data is a friend
friend class Data; // OK: nested Data is a friend
struct Data { /* ... */ }; // Defines nested Data
};
ものすごい微妙な動きをするみたいだ・・・。
struct Base の定義を見てみると、外側に既に struct Data が定義されていても、
なぜか、Data は、「nested Data」すなわち、Baseの内部クラスの方を「参照」して
しまうらしい。規則性はどこにあるんだろう。まだ英文読んでないけど。
struct Node {
struct Node* Next; // OK: Refers to Node at global scope
struct Data* Data; // OK: Declares type Data
// at global scope and member Data
};
struct Data {
struct Node* Node; // OK: Refers to Node at global scope
friend struct ::Glob; // error: Glob is not declared, cannot introduce a qualified type ([dcl.type.elab])
friend struct Glob; // OK: Refers to (as yet) undeclared Glob at global scope.
/* ... */
};
struct Base {
struct Data; // OK: Declares nested Data
struct ::Data* thatData; // OK: Refers to ::Data
struct Base::Data* thisData; // OK: Refers to nested Data
friend class ::Data; // OK: global Data is a friend
friend class Data; // OK: nested Data is a friend
struct Data { /* ... */ }; // Defines nested Data
};
610デフォルトの名無しさん (ワッチョイ d9e3-1aIk)
2018/12/11(火) 15:29:10.50ID:TeIOtXwo0 【違いの分析】
1. 外部クラスを参照したい場合の書き方:
struct Data {
struct Node* Node; // OK: Refers to Node at global scope
・・・
};
2. 内部クラスを参照したい場合の書き方:
struct Base {
struct Data; // OK: Declares nested Data
・・・
};
【考察】
後者の方は、「『宣言子』を「何にも書かずに」、ただ不完全定義として、
「struct Data」と書いている。こういう独特の特徴的な書き方で、
新しいタグ名の導入と見なされているのではないか。
一方、前者の方は、 「struct Node」だけではなく、「*Node」という「宣言子」を
書いてしまっているので、新しいタグ名の導入とは見なされない気がする。
先日書いた、CRITICAL なんたらの例では、宣言氏を書いていたので、「1」
の方の扱いとなり、外部クラスの参照と見なされた・・・。
1. 外部クラスを参照したい場合の書き方:
struct Data {
struct Node* Node; // OK: Refers to Node at global scope
・・・
};
2. 内部クラスを参照したい場合の書き方:
struct Base {
struct Data; // OK: Declares nested Data
・・・
};
【考察】
後者の方は、「『宣言子』を「何にも書かずに」、ただ不完全定義として、
「struct Data」と書いている。こういう独特の特徴的な書き方で、
新しいタグ名の導入と見なされているのではないか。
一方、前者の方は、 「struct Node」だけではなく、「*Node」という「宣言子」を
書いてしまっているので、新しいタグ名の導入とは見なされない気がする。
先日書いた、CRITICAL なんたらの例では、宣言氏を書いていたので、「1」
の方の扱いとなり、外部クラスの参照と見なされた・・・。
611はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5b6f-n9Ol)
2018/12/11(火) 15:34:19.91ID:pCenHJYt0 >>609
D&E の 6.3.1 にそのあたりの解説があるので読んでみると面白いかも。
「病的な例」を含めてわかりやすい解決ルールを作ろうと奮闘したあげくに
まあまあマシなルールとしてそうなったって感じ。
D&E の 6.3.1 にそのあたりの解説があるので読んでみると面白いかも。
「病的な例」を含めてわかりやすい解決ルールを作ろうと奮闘したあげくに
まあまあマシなルールとしてそうなったって感じ。
612デフォルトの名無しさん (ワッチョイ d9e3-1aIk)
2018/12/11(火) 17:25:37.23ID:TeIOtXwo0613デフォルトの名無しさん (ワッチョイ 2b80-Po2/)
2018/12/11(火) 22:53:03.48ID:yA4tg2d20 ぜんぜん違う
ポインタだからサイズが決定できることになる
ポインタなら前方宣言で前方参照できる
ポインタだからサイズが決定できることになる
ポインタなら前方宣言で前方参照できる
614デフォルトの名無しさん (ワッチョイ 93b3-eP6C)
2018/12/11(火) 22:54:56.40ID:essnCSQz0 2. のほうは構造体を宣言してるから、そこに新しく nested class が作られてる。
1. のほうは構造体へのポインタを宣言してるから、対応する構造体を探して外部の定義を見つけてる。
そんなに微妙でもないと思う。
1. のほうは構造体へのポインタを宣言してるから、対応する構造体を探して外部の定義を見つけてる。
そんなに微妙でもないと思う。
615デフォルトの名無しさん (ワッチョイ 2b80-Po2/)
2018/12/11(火) 22:59:45.95ID:yA4tg2d20 そもそもポインタでない場合、前方宣言でなくクラス(もしくは構造体)の宣言がないと
インスタンスのサイズが決定できないし
コンスタラクトタも呼び出せない
普通にコンパイルエラーになる
クラス(もしくは構造体)のメンバにアクセスする場合も同じく
前方宣言でなくクラス(もしくは構造体)の宣言がないと
メンバがわからない
普通にコンパイルエラーになる
インスタンスのサイズが決定できないし
コンスタラクトタも呼び出せない
普通にコンパイルエラーになる
クラス(もしくは構造体)のメンバにアクセスする場合も同じく
前方宣言でなくクラス(もしくは構造体)の宣言がないと
メンバがわからない
普通にコンパイルエラーになる
616デフォルトの名無しさん (ワッチョイ 2b80-Po2/)
2018/12/11(火) 23:02:27.89ID:yA4tg2d20 ポインタもしくは&の参照だけなら
前方参照だけで問題はない
マジで頭悪いシロウトしかいない
前方参照だけで問題はない
マジで頭悪いシロウトしかいない
617デフォルトの名無しさん (ワッチョイ f9c3-+0bq)
2018/12/11(火) 23:59:39.80ID:6HVoAQt60 おじいちゃん今はタグ名前空間の話でしょ
不完全型のポインタが完全型になる話なんか今更ドヤ顔でしても恥ずかしいだけだよ
不完全型のポインタが完全型になる話なんか今更ドヤ顔でしても恥ずかしいだけだよ
618デフォルトの名無しさん (ワッチョイ 2b80-Po2/)
2018/12/12(水) 00:09:55.89ID:1Fc61En10 また低学歴知恵遅れが的外れなこといってるし
低学歴知恵遅れってなんでこんな頭悪いん
頭悪いくせに頭悪いレスをする
低学歴知恵遅れってなんでこんな頭悪いん
頭悪いくせに頭悪いレスをする
619デフォルトの名無しさん (ワッチョイ 2b80-Po2/)
2018/12/12(水) 00:10:41.87ID:1Fc61En10 まず低学歴知恵遅れはC/C++言語の特性すらわかってない
620デフォルトの名無しさん (ワントンキン MMd3-OBga)
2018/12/12(水) 08:26:27.80ID:G3zhlg3lM 半角恥ずかしいな
さすが低学歴
さすが低学歴
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 「日本はドイツと違い反省せず」…中国外相、独外相に対日批判 台湾問題で理解求める [少考さん★]
- 【おこめ券】鈴木農相 米価維持の意図「一切ない」 [ぐれ★]
- 【警視庁】走行中の電車で女性に露出した下半身押しつけたか 無職の男(46)逮捕「チャンスがあればいつでもやる」 [nita★]
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★6 [七波羅探題★]
- 【苺ましまろ】立民衆院議員、人気漫画の水着少女画像を「醜悪」タイ人少女の性搾取事件と関連付け…党内で反発 [少考さん★]
- 「残業キャンセル界隈」若者が増加?「職務放棄」との批判も…“定時退社の権利”どこまで通用するか [七波羅探題★]
- 高市政権「かけてもつながらない。機能していない」防衛当局間のホットライン機能せず [834922174]
- 【高市悲報】中国軍「公海で空母の発着訓練するって事前通告したのになんで自衛隊機は急接近してきたんだ…?」中国軍困惑★2 [931948549]
- あたしゃやだよ
- 【高市悲報】中国軍「公海で空母の発着訓練するって事前通告したのになんで自衛隊機は急接近してきたんだ…?」中国軍困惑 [931948549]
- 30過ぎた大人おじさんが大学生(昔)のままのファッションをする「おじさんキッズコーデ」、炎上して問題視される。 [153490809]
- 俺はきっと"全部"嫌いなんだ。息づく全てが俺を苛つかせるんだ。
