次スレを立てる時は本文の1行目に以下を追加して下さい。
!extend:on:vvvvv:1000:512
C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。
前スレ
C++相談室 part137
https://mevius.5ch.net/test/read.cgi/tech/1531558382/
このスレもよろしくね。
【初心者歓迎】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++相談室 part137
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 12c3-4saf)
2018/08/27(月) 16:02:00.94ID:vY3QDx2y0224デフォルトの名無しさん (ワッチョイ 0580-rkYf)
2018/09/05(水) 00:30:09.32ID:+wARDt+J0 ココにサンプルコードがある
http://eternalwindows.jp/ipc/namedpipe/namedpipe02.html
FILE_FLAG_OVERLAPPED を追加する
よく分からんがコレとはまた違うのか
http://eternalwindows.jp/ipc/namedpipe/namedpipe02.html
FILE_FLAG_OVERLAPPED を追加する
よく分からんがコレとはまた違うのか
225デフォルトの名無しさん (スップ Sd03-snBd)
2018/09/05(水) 00:37:34.35ID:ABz0W8sZd >>224
FILE_FLAG_OVERLAPPEDの使用はまだ試してないので明日試してみますありがとう
FILE_FLAG_OVERLAPPEDに関しては持たないときの条件を使ってたんだけどだめだったんかな...
これをしたかったのだが...
https://msdn.microsoft.com/ja-jp/library/cc429611.aspx
hNamedPipe ハンドルが FILE_FLAG_OVERLAPPED フラグを持たないとき、かつ、lpOverlapped パラメータで有効なポインタを指定したときは、この関数は非同期的に実行されます。
制御はすぐに返り、戻り値は 0 になります。GetLastError 関数は、ConnectNamedPipe 関数を呼び出す前にクライアントプロセス側が接続されていたときは
ERROR_PIPE_CONNECTED を、そうでないときは ERROR_IO_PENDING を返します。
peekNamedPipe読んでるけど難しい
FILE_FLAG_OVERLAPPEDの使用はまだ試してないので明日試してみますありがとう
FILE_FLAG_OVERLAPPEDに関しては持たないときの条件を使ってたんだけどだめだったんかな...
これをしたかったのだが...
https://msdn.microsoft.com/ja-jp/library/cc429611.aspx
hNamedPipe ハンドルが FILE_FLAG_OVERLAPPED フラグを持たないとき、かつ、lpOverlapped パラメータで有効なポインタを指定したときは、この関数は非同期的に実行されます。
制御はすぐに返り、戻り値は 0 になります。GetLastError 関数は、ConnectNamedPipe 関数を呼び出す前にクライアントプロセス側が接続されていたときは
ERROR_PIPE_CONNECTED を、そうでないときは ERROR_IO_PENDING を返します。
peekNamedPipe読んでるけど難しい
226デフォルトの名無しさん (ワッチョイ 2334-hqRA)
2018/09/05(水) 01:24:39.22ID:BafBBEgt0 peekで調べるのはcbAvailだけ
データは読まなくていい
読むときはReadFile
データは読まなくていい
読むときはReadFile
227デフォルトの名無しさん (ワッチョイ 3de3-zBrR)
2018/09/05(水) 02:51:54.52ID:n3z3O06I0 C++関係無いよね
Win32APIスレに行くべきだと思う
https://msdn.microsoft.com/ja-jp/library/windows/desktop/aa365146(v=vs.85).aspx
こっちにはその部分に相当する箇所が無いようにみえる
FLAG_OVERLAPPEDの有無で非同期/同期は決まるんじゃないのかなぁ
>If hNamedPipe was not opened with FILE_FLAG_OVERLAPPED, the function does not return until a client is connected or an error occurs.
ってあるし
Win32APIスレに行くべきだと思う
https://msdn.microsoft.com/ja-jp/library/windows/desktop/aa365146(v=vs.85).aspx
こっちにはその部分に相当する箇所が無いようにみえる
FLAG_OVERLAPPEDの有無で非同期/同期は決まるんじゃないのかなぁ
>If hNamedPipe was not opened with FILE_FLAG_OVERLAPPED, the function does not return until a client is connected or an error occurs.
ってあるし
228デフォルトの名無しさん (ワッチョイ 0b80-4Jnz)
2018/09/05(水) 12:47:17.08ID:TWmx8fnR0 >>223
>クライアント側が居なかった場合、ずっと待機し続ける
パイプって、パイプラインにデータが流れてくるまでは、ブロックされるものだろ。
データも流れて来ないのに、先へ進んだら、バグるだけ
その際、非同期なら、データ無しで、即座に返答が返ってくるのでは?
>クライアント側が居なかった場合、ずっと待機し続ける
パイプって、パイプラインにデータが流れてくるまでは、ブロックされるものだろ。
データも流れて来ないのに、先へ進んだら、バグるだけ
その際、非同期なら、データ無しで、即座に返答が返ってくるのでは?
229デフォルトの名無しさん (ワッチョイ e322-tpL7)
2018/09/05(水) 13:15:20.01ID:mkiFi/5o0 入力が「まだ来んからちょ待っとれ」なのか
「来るわけないやろアホかおまえ」なのかは
別の手段で判断せにゃならん
「来るわけないやろアホかおまえ」なのかは
別の手段で判断せにゃならん
230はちみつ餃子 ◆8X2XSCHEME (ワッチョイ db6f-tpL7)
2018/09/05(水) 15:48:09.73ID:QNa0Ltxl0 まあ常識的には適当な時間でタイムアウトするようにするくらいのものかな。
231デフォルトの名無しさん (スッップ Sd43-GfG6)
2018/09/05(水) 16:08:15.65ID:Nag0NR3Rd >>221
https://stackoverflow.com/questions/14306499/non-blocking-connectnamedpipe-event-not-getting-signaled/14306743
PIPE_NOWAIT を使えば ERROR_PIPE_LISTENING だの ERROR_IO_PENDING が即座に返されるが
WaitForSingleObject は発火しない
PIPE_WAIT だと当然ブロックする
PIPE_NOWAIT はlan managerとの互換性のために残されているだけで使用は推奨されていない
面倒でも FILE_FLAG_OVERLAPPED を使うしかない
https://stackoverflow.com/questions/14306499/non-blocking-connectnamedpipe-event-not-getting-signaled/14306743
PIPE_NOWAIT を使えば ERROR_PIPE_LISTENING だの ERROR_IO_PENDING が即座に返されるが
WaitForSingleObject は発火しない
PIPE_WAIT だと当然ブロックする
PIPE_NOWAIT はlan managerとの互換性のために残されているだけで使用は推奨されていない
面倒でも FILE_FLAG_OVERLAPPED を使うしかない
232デフォルトの名無しさん (スッップ Sd43-GfG6)
2018/09/05(水) 16:09:55.39ID:Nag0NR3Rd と書いたけどカッコつけずに後先考えず PIPE_NOWAIT でポーリングしてもいいか
233デフォルトの名無しさん (オイコラミネオ MMb9-RPdS)
2018/09/05(水) 18:53:58.76ID:H6UyuApwM void hoge(int x, int *returnint){
returnint = int * 2;
}
int hoge(int x){
return int * 2;
}
これって内容同じですか?
returnint = int * 2;
}
int hoge(int x){
return int * 2;
}
これって内容同じですか?
234デフォルトの名無しさん (ワッチョイ 2334-hqRA)
2018/09/05(水) 19:15:02.29ID:BafBBEgt0 どっちもコンパイルエラー出る点では同じ
235デフォルトの名無しさん (ワッチョイ 9593-kT/R)
2018/09/05(水) 19:32:27.66ID:YeNc+rPy0 >>233 C言語に対して重大な勘違い、または質問レスに些細な打ち間違い、
どちらかだと思うが、どちらかは分からない。
どちらかだと思うが、どちらかは分からない。
236235 (ワッチョイ 9593-kT/R)
2018/09/05(水) 19:33:03.57ID:YeNc+rPy0 C言語じゃなくてC++だね、ここ。
237デフォルトの名無しさん (ブーイモ MM29-s+Zn)
2018/09/05(水) 22:59:59.06ID:yXdlNP4XM selectしろや
>>215
内容をみてくださり感謝いたします、とても考えさせられました
まず >>211 に二点誤りがありました
・コンストラクタ引数に与える bit 数から、内部 vector<atomic<int>> の確保容量を計算する方法に誤りがあった
・CAS 後にスピンロックするかどうかの判断にあやまりがあった
修正 https://ideone.com/nwcmzq
>>215
>while (!_v[q]. _a.compare_exchange_weak(e, e|(1<<r)) {}
>while (!_v[q]. _a.compare_exchange_weak(e, e& ~(1<<r)) {}
>(e は未初期化状態でも構わない)
>>195 「やりたいことはエラトステネスのふるいなので、この場合オンしたあとオフすることはありません」
に範囲を限定するのならば >>215 はうまくいくと思います。これには「なるほど!!」と思いました。
ビットセットの最中は別スレッドのビットリセットやビットテストをスピンロックさせたい、
とかの排他制御をやるのならば、dirty-bit(というか1ビットセマフォ)を作らないといけないと考えています
内容をみてくださり感謝いたします、とても考えさせられました
まず >>211 に二点誤りがありました
・コンストラクタ引数に与える bit 数から、内部 vector<atomic<int>> の確保容量を計算する方法に誤りがあった
・CAS 後にスピンロックするかどうかの判断にあやまりがあった
修正 https://ideone.com/nwcmzq
>>215
>while (!_v[q]. _a.compare_exchange_weak(e, e|(1<<r)) {}
>while (!_v[q]. _a.compare_exchange_weak(e, e& ~(1<<r)) {}
>(e は未初期化状態でも構わない)
>>195 「やりたいことはエラトステネスのふるいなので、この場合オンしたあとオフすることはありません」
に範囲を限定するのならば >>215 はうまくいくと思います。これには「なるほど!!」と思いました。
ビットセットの最中は別スレッドのビットリセットやビットテストをスピンロックさせたい、
とかの排他制御をやるのならば、dirty-bit(というか1ビットセマフォ)を作らないといけないと考えています
239デフォルトの名無しさん (オイコラミネオ MM53-EsDf)
2018/09/06(木) 02:04:16.57ID:Gt7E2PT1M >>234,235
すみません
C++にあまり詳しくないのでわからないのですが、どこがおかしいのでしょうか?
これなら内容等しいですか?
void hoge(int x, int& ret){
ret = int * 2;
}
int hoge(int x){
return int * 2:
}
すみません
C++にあまり詳しくないのでわからないのですが、どこがおかしいのでしょうか?
これなら内容等しいですか?
void hoge(int x, int& ret){
ret = int * 2;
}
int hoge(int x){
return int * 2:
}
240デフォルトの名無しさん (ワッチョイ 5304-eMuy)
2018/09/06(木) 02:08:35.51ID:itCyrIVk0 それはギャグで言っているのか?
void hoge(int x, int& ret){
ret = x * 2;
}
int hoge(int x){
return x * 2:
}
void hoge(int x, int& ret){
ret = x * 2;
}
int hoge(int x){
return x * 2:
}
241デフォルトの名無しさん (オイコラミネオ MM53-EsDf)
2018/09/06(木) 02:15:35.03ID:Ev1vpWJGM242デフォルトの名無しさん (ワッチョイ 5304-eMuy)
2018/09/06(木) 02:38:44.74ID:itCyrIVk0 えーっと、
上段の参照渡しは呼び出し時に渡した変数そのものがやってきて書き換える。
下段のやつはコピーを返すので一手間ある。
理論的には下段の方がちょっと遅い。
まぁ、コンパイラが頑張ってきえるかもしれんし、
デルタ時間的に差はあるかもしれないが最近のコンピュータならあまり問題にならない。
それよりも速度を気にするなら採用しているアルゴリズムを精査したほうが効果的。
ちょっと変な文になった。
上段の参照渡しは呼び出し時に渡した変数そのものがやってきて書き換える。
下段のやつはコピーを返すので一手間ある。
理論的には下段の方がちょっと遅い。
まぁ、コンパイラが頑張ってきえるかもしれんし、
デルタ時間的に差はあるかもしれないが最近のコンピュータならあまり問題にならない。
それよりも速度を気にするなら採用しているアルゴリズムを精査したほうが効果的。
ちょっと変な文になった。
243デフォルトの名無しさん (ワッチョイ 5393-WN3X)
2018/09/06(木) 05:45:03.77ID:UQb09hzL0 厳密なところはアセンブラ出力を個別に見ないと分からない、
という前提はひとまず措くとして…。
int x, ret1, ret2; // x が未初期化ってところは見逃してくれ
hoge_ref(x, ret1); // void hoge(int x, int& ret)
ret2 = hoge_val(x); // int hoge(int x)
上は第2引数に参照を渡す手間が必要な代わりに返り値の処理は不要
下は引数1個で済む代わりに呼出側で返り値を別の変数に代入しなきゃいけない
相殺してどっこいどっこい大差なし、じゃないかな。
計算結果を変数に入れる必要がない場合、等はまた別のお話。
という前提はひとまず措くとして…。
int x, ret1, ret2; // x が未初期化ってところは見逃してくれ
hoge_ref(x, ret1); // void hoge(int x, int& ret)
ret2 = hoge_val(x); // int hoge(int x)
上は第2引数に参照を渡す手間が必要な代わりに返り値の処理は不要
下は引数1個で済む代わりに呼出側で返り値を別の変数に代入しなきゃいけない
相殺してどっこいどっこい大差なし、じゃないかな。
計算結果を変数に入れる必要がない場合、等はまた別のお話。
244はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 966f-7GfT)
2018/09/06(木) 05:49:16.79ID:IzfX8EX20 >>240
後者の末尾がコロンになってるのがそのままやで。
後者の末尾がコロンになってるのがそのままやで。
245はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 966f-7GfT)
2018/09/06(木) 05:59:16.76ID:IzfX8EX20 仮に差があったとしてもナノ秒レベルの話やん
246デフォルトの名無しさん (ワッチョイ 17c3-oywQ)
2018/09/06(木) 07:14:55.98ID:3Sjg8sdP0 速度どうこうは1兆回回すループの中にあるとか1マイクロ秒以内に完了しないと原子炉が爆発するとか
プロファイラでクソ時間がかかってることが判明したとかした時だけ気にしよう
プロファイラでクソ時間がかかってることが判明したとかした時だけ気にしよう
247243 (ワッチョイ 5393-WN3X)
2018/09/06(木) 08:27:46.68ID:UQb09hzL0 実際のところ「別のお話」と切り捨てた部分が大切でね。
元の質問から逸れてしまうけど。
関数が計算する結果の値だけが欲しい(別の変数に格納する必要がない、
格納すべき変数そのものが存在しない)場合とか、
返り値に相当するのがint等の単純なデータでなく大きなクラスの場合とか、
その辺りを基準に比較すべきなんだよ。
元の質問から逸れてしまうけど。
関数が計算する結果の値だけが欲しい(別の変数に格納する必要がない、
格納すべき変数そのものが存在しない)場合とか、
返り値に相当するのがint等の単純なデータでなく大きなクラスの場合とか、
その辺りを基準に比較すべきなんだよ。
248はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 966f-7GfT)
2018/09/06(木) 08:44:12.19ID:IzfX8EX20 早すぎる最適化は諸悪の根源っていうもんな。
249デフォルトの名無しさん (ワッチョイ efd2-7GfT)
2018/09/06(木) 08:51:51.10ID:j/wx9LUv0 同意。固定長オンリーなどの最適化を最初から入れ込むとロクなことがない。
250デフォルトの名無しさん (オイコラミネオ MMe6-xaKy)
2018/09/06(木) 09:29:04.75ID:mrWZ3sxKM そーそー
尻拭く時間だけ早くしてもンコが早く出なきゃしゃーない
尻拭く時間だけ早くしてもンコが早く出なきゃしゃーない
251デフォルトの名無しさん (ブーイモ MM97-M35H)
2018/09/06(木) 10:29:33.35ID:c/F3wcvdM252はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 966f-7GfT)
2018/09/06(木) 10:57:52.18ID:IzfX8EX20253はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 966f-7GfT)
2018/09/06(木) 10:58:36.13ID:IzfX8EX20 実際のところ、インライン化されて更に他の最適化とコンボが起こったりすると
普通の人間にはどうなるか予測がつかんので考えるだけ無駄。
普通の人間にはどうなるか予測がつかんので考えるだけ無駄。
254デフォルトの名無しさん (ブーイモ MM97-M35H)
2018/09/06(木) 11:15:06.66ID:c/F3wcvdM >>252
なんで呼び出し側の話がはいってくるんだよ
そっちの話を含めるとしても
呼び出し側もレジスタのまま処理が行われるのが普通だし、
メモリに書き出されるとしても、
参照と同程度になるってだけ
このABIを理解するのはc/c++使う上で基本
無意味と思うのは結構だがそれはお前の関心がないってだけ
レスしなけりゃいい
なんで呼び出し側の話がはいってくるんだよ
そっちの話を含めるとしても
呼び出し側もレジスタのまま処理が行われるのが普通だし、
メモリに書き出されるとしても、
参照と同程度になるってだけ
このABIを理解するのはc/c++使う上で基本
無意味と思うのは結構だがそれはお前の関心がないってだけ
レスしなけりゃいい
255デフォルトの名無しさん (オイコラミネオ MM53-EsDf)
2018/09/06(木) 12:11:07.39ID:uRta3OIBM intの場合は速度差は特に考慮しなくて良いんですねありがとうございます
それと、関数内でOpenCVで画像をゴニョゴニョして、結果の画像をリターンしたい場合は、どちらが良いのですかね?
特にメモリリークを起こしたくない(今現在起きてるので改善したい)ので、もし何か重大な違いがあるなら知りたいです
void hoge(cv::Mat x, cv::Mat ret){
ret = x + cv::Scalar(100);
}
cv::Mat hoge(cv::Mat x){
return x + cv::Scalar(100);
}
それと、関数内でOpenCVで画像をゴニョゴニョして、結果の画像をリターンしたい場合は、どちらが良いのですかね?
特にメモリリークを起こしたくない(今現在起きてるので改善したい)ので、もし何か重大な違いがあるなら知りたいです
void hoge(cv::Mat x, cv::Mat ret){
ret = x + cv::Scalar(100);
}
cv::Mat hoge(cv::Mat x){
return x + cv::Scalar(100);
}
256はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 966f-7GfT)
2018/09/06(木) 13:28:43.07ID:IzfX8EX20 >>254
呼出し側の状況によっても変わりうるから呼出しの状況を含めるってのがそんなにおかしな話かね。
あと、あくまでもこれは C++ という言語を中心にした一般原則としてどうコンパイルされることも「有りうる」ということを述べているのであって、
特定のアーキテクチャやコンパイラや ABI を想定したものではないよ。
多くの (あるいは主要な) 処理系であなたが言うような結果になるというなら、
それはそうかもしれないが、そこには単に私の関心がないのも確か。
呼出し側の状況によっても変わりうるから呼出しの状況を含めるってのがそんなにおかしな話かね。
あと、あくまでもこれは C++ という言語を中心にした一般原則としてどうコンパイルされることも「有りうる」ということを述べているのであって、
特定のアーキテクチャやコンパイラや ABI を想定したものではないよ。
多くの (あるいは主要な) 処理系であなたが言うような結果になるというなら、
それはそうかもしれないが、そこには単に私の関心がないのも確か。
257はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 966f-7GfT)
2018/09/06(木) 13:34:38.93ID:IzfX8EX20 >>255
前者のコードの cv::Mat ret は cv::Mat& ret の間違い?
前者のコードの cv::Mat ret は cv::Mat& ret の間違い?
258デフォルトの名無しさん (ブーイモ MM97-M35H)
2018/09/06(木) 13:53:20.00ID:c/F3wcvdM >>256
それはお前の間違った理解であって一般とは言わない
だいたい呼び出し側も含めて反論されてんのになにぼけたレスしてんだよ
お前の理屈だとレジスタの返しが無用となるじゃないか
x64ならraxでaarch64ならx0で返り値を返す
32bitのレガシーならいざしらず64bitでもabiはそう決められてるわけ
お前の興味のない低いレイヤーではそういうのを最大限活用して効率的にcpu回してんだよ
それはお前の間違った理解であって一般とは言わない
だいたい呼び出し側も含めて反論されてんのになにぼけたレスしてんだよ
お前の理屈だとレジスタの返しが無用となるじゃないか
x64ならraxでaarch64ならx0で返り値を返す
32bitのレガシーならいざしらず64bitでもabiはそう決められてるわけ
お前の興味のない低いレイヤーではそういうのを最大限活用して効率的にcpu回してんだよ
259はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 966f-7GfT)
2018/09/06(木) 14:06:16.01ID:IzfX8EX20260デフォルトの名無しさん (ブーイモ MM97-M35H)
2018/09/06(木) 14:09:29.47ID:c/F3wcvdM262はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 966f-7GfT)
2018/09/06(木) 14:27:25.26ID:IzfX8EX20 >>255
前者については & の脱字だと仮定して答えるけど、
その脱字が無ければ、前者でも後者でも最終的な結果に差はないと思う。
特にメモリリークにつながりそうな要素もない。
ただ、単純に、局所的に考えるならば後者の方が効率的と言えると思う。
前者だと呼出し側では結果を受け取るための cv::Mat 型の変数を用意しなければならないが、
そのときにデフォルトコンストラクタが走ってから結果は operator= で格納するという形になる。
後者だとコピーコンストラクタ一発で済むので簡単。 場合によっては RVO が適用されるかもしれない。
一度作った変数を何度も結果格納用に使いまわすのならば、
前者の方がメモリアロケーションの回数を抑制できる (効率的になる) 可能性も有るけど、
Mat の実装次第ではそうならないかもしれないし、
そこらへんは実際にやってみないとわからない。
ところでメモリリークが起きていると判断したのは何かツールを使って検証したの?
前者については & の脱字だと仮定して答えるけど、
その脱字が無ければ、前者でも後者でも最終的な結果に差はないと思う。
特にメモリリークにつながりそうな要素もない。
ただ、単純に、局所的に考えるならば後者の方が効率的と言えると思う。
前者だと呼出し側では結果を受け取るための cv::Mat 型の変数を用意しなければならないが、
そのときにデフォルトコンストラクタが走ってから結果は operator= で格納するという形になる。
後者だとコピーコンストラクタ一発で済むので簡単。 場合によっては RVO が適用されるかもしれない。
一度作った変数を何度も結果格納用に使いまわすのならば、
前者の方がメモリアロケーションの回数を抑制できる (効率的になる) 可能性も有るけど、
Mat の実装次第ではそうならないかもしれないし、
そこらへんは実際にやってみないとわからない。
ところでメモリリークが起きていると判断したのは何かツールを使って検証したの?
263はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 966f-7GfT)
2018/09/06(木) 14:31:00.99ID:IzfX8EX20264デフォルトの名無しさん (ブーイモ MM97-M35H)
2018/09/06(木) 18:25:26.14ID:c/F3wcvdM >>263
関数内の最適化のみで考えればいいだけなんだからきりはあるだろ
つまりインライン展開なし、LOTなし
ABIを意識するのは全然特殊じゃない
言語間のよびだしはざらだし、
クラッシュダンプにスタックトレース残すためにあえてインライン抑制したりする
お前が経験不足なだけだよ
関数内の最適化のみで考えればいいだけなんだからきりはあるだろ
つまりインライン展開なし、LOTなし
ABIを意識するのは全然特殊じゃない
言語間のよびだしはざらだし、
クラッシュダンプにスタックトレース残すためにあえてインライン抑制したりする
お前が経験不足なだけだよ
265はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 966f-7GfT)
2018/09/06(木) 18:41:01.02ID:IzfX8EX20 >>264
そっちの脳内でどんな前提を置いてるかなんて知らんがな。
そっちの脳内でどんな前提を置いてるかなんて知らんがな。
266デフォルトの名無しさん (ブーイモ MM97-M35H)
2018/09/06(木) 19:48:52.61ID:c/F3wcvdM >>265
コテハンの割に薄いやつだ
もとの質問は関数から値の返し方についてどちらが速いかという質問なんだから、
関数のインライン展開がないと仮定すれば、定性的に答えられる問いだ
かつその仮定は別に現実ばなれしてるわけでもない
それをお前はその知識が有用であることも知らずに考えるだけ無駄とかぶったぎってるわけだ
このスレは相談室
無駄なのはそういうお前の存在ではとおれは思うわけ
コテハンの割に薄いやつだ
もとの質問は関数から値の返し方についてどちらが速いかという質問なんだから、
関数のインライン展開がないと仮定すれば、定性的に答えられる問いだ
かつその仮定は別に現実ばなれしてるわけでもない
それをお前はその知識が有用であることも知らずに考えるだけ無駄とかぶったぎってるわけだ
このスレは相談室
無駄なのはそういうお前の存在ではとおれは思うわけ
267デフォルトの名無しさん (ワッチョイ 8b80-f65Y)
2018/09/06(木) 20:12:24.70ID:64ZwjQvb0 malloc()したヒープはfree()解放するのは当然
ウンコしたあと水で流さないぐらい行儀が悪い
ウンコしたあと水で流さないぐらい行儀が悪い
268デフォルトの名無しさん (ワッチョイ 5304-eMuy)
2018/09/06(木) 20:23:27.14ID:itCyrIVk0 メモリーリークは基本的に自分でNEWすることで起こる。
最近のC++では基本的に自分でNEWすることはほとんどない。
動的なメモリが欲しければvectorを使う。
後は、ポインタにインスタンスを確保しないで関数に投げるとかもやってはいけない。メモリを破壊することになる。
あと、どうしてもnewが必要だったりGCが必要な時はスマポを使う。
そういう作法でやると、ユーザーコードでnewすることはほぼない。
最近のC++では基本的に自分でNEWすることはほとんどない。
動的なメモリが欲しければvectorを使う。
後は、ポインタにインスタンスを確保しないで関数に投げるとかもやってはいけない。メモリを破壊することになる。
あと、どうしてもnewが必要だったりGCが必要な時はスマポを使う。
そういう作法でやると、ユーザーコードでnewすることはほぼない。
269デフォルトの名無しさん (ワッチョイ 5304-eMuy)
2018/09/06(木) 20:47:20.81ID:itCyrIVk0 えーっと、関数にポインタを投げる時はその関数の仕様を精査して扱わないとほんとやばい。
270デフォルトの名無しさん (ワッチョイ ba34-uOrU)
2018/09/06(木) 21:04:04.33ID:bw6Oo6uj0 newとdeleteを使いこなせない補助輪付C++グラマってのも問題だけど
271デフォルトの名無しさん (ワッチョイ 9a22-7GfT)
2018/09/06(木) 21:10:02.71ID:iyjSCMca0 スマポはGCじゃねえよ ぼけ
272デフォルトの名無しさん (ワッチョイ 5304-eMuy)
2018/09/06(木) 21:14:09.31ID:itCyrIVk0 shared_pointerは参照カウントっていうGC機構ですよ?
273デフォルトの名無しさん (ワッチョイ 5304-eMuy)
2018/09/06(木) 21:17:21.85ID:itCyrIVk0274デフォルトの名無しさん (ワッチョイ 5304-eMuy)
2018/09/06(木) 21:18:00.66ID:itCyrIVk0275デフォルトの名無しさん (ワッチョイ 9a22-7GfT)
2018/09/06(木) 21:18:22.90ID:iyjSCMca0 CGってそもそも何だ?
アプリが「今、解放しろ」というタイミングで動くのをGCというならfreeもGCだぞ
アプリが「今、解放しろ」というタイミングで動くのをGCというならfreeもGCだぞ
276デフォルトの名無しさん (ワッチョイ 8b80-f65Y)
2018/09/06(木) 21:20:24.16ID:64ZwjQvb0 いつ解放されるか分からないとか
そもそもオブジェクトの外部でポインタの生存期間を制御できてないコードがヤバイわ
そもそもオブジェクトの外部でポインタの生存期間を制御できてないコードがヤバイわ
277デフォルトの名無しさん (ワッチョイ 5304-eMuy)
2018/09/06(木) 21:24:58.09ID:itCyrIVk0 >>275
そういう、広義解釈は話題が滅茶苦茶になるのでやめましょう。
GCはガベージコレクションだよ。freeは解放関数だよ。
シェアードポインターの解放タイミングは普通コントールしないのでGCだと思ってます。
というか、開放タイミングが未定だからシェアードポインタ使うんじゃないですか?
そういう、広義解釈は話題が滅茶苦茶になるのでやめましょう。
GCはガベージコレクションだよ。freeは解放関数だよ。
シェアードポインターの解放タイミングは普通コントールしないのでGCだと思ってます。
というか、開放タイミングが未定だからシェアードポインタ使うんじゃないですか?
278デフォルトの名無しさん (ワッチョイ 5304-eMuy)
2018/09/06(木) 21:27:59.96ID:itCyrIVk0 それは全能でないとバグが出ちゃうのでこういう機構が発明されました。
書くときは大まかには寿命は把握しているとは思うのですが、細部までは精査しないことが多いんじゃないでしょうか。
自分のクローンに共有オブジェクトを持たせるときとか普通に書くと滅茶苦茶大変ですよ?
書くときは大まかには寿命は把握しているとは思うのですが、細部までは精査しないことが多いんじゃないでしょうか。
自分のクローンに共有オブジェクトを持たせるときとか普通に書くと滅茶苦茶大変ですよ?
279デフォルトの名無しさん (ワッチョイ 9a22-7GfT)
2018/09/06(木) 21:37:24.49ID:iyjSCMca0280デフォルトの名無しさん (ワッチョイ 5304-eMuy)
2018/09/06(木) 21:38:17.39ID:itCyrIVk0281デフォルトの名無しさん (ワッチョイ 5304-eMuy)
2018/09/06(木) 21:41:02.92ID:itCyrIVk0 >>279
複数の共有がある場合、一個のデストラクタが走った程度では解放されませんよ?
freeは別にデストラクタに仕込む必要ないじゃないですか。
それと、複数の共有がある場合適切にfreeできますか?
複数の共有がある場合、一個のデストラクタが走った程度では解放されませんよ?
freeは別にデストラクタに仕込む必要ないじゃないですか。
それと、複数の共有がある場合適切にfreeできますか?
282デフォルトの名無しさん (ブーイモ MM97-A2Qj)
2018/09/06(木) 21:42:45.15ID:JT+LXegNM コレクションしてないのになんでgcなんだよ。アホすぎる
283デフォルトの名無しさん (ワッチョイ ba34-uOrU)
2018/09/06(木) 21:43:23.10ID:bw6Oo6uj0 シェアードはマルチタスクには不向きだし
284デフォルトの名無しさん (ワッチョイ 5304-eMuy)
2018/09/06(木) 21:49:40.12ID:itCyrIVk0 コレクションサイズが1のコンテナはないのですね。まぁ、冗談は置いといて。
物事を知ってるなら後は任せました。無知でごめんなさい。
物事を知ってるなら後は任せました。無知でごめんなさい。
285デフォルトの名無しさん (ワッチョイ 5304-eMuy)
2018/09/06(木) 21:51:04.10ID:itCyrIVk0 >>272
参照カウンタは普通GCに含めないのでは?
参照カウンタは普通GCに含めないのでは?
287デフォルトの名無しさん (ワッチョイ 5304-eMuy)
2018/09/06(木) 22:02:22.60ID:itCyrIVk0 https://ja.wikipedia.org/wiki/参照カウント
こういう記事を見つけました。
こういう記事を見つけました。
288デフォルトの名無しさん (ワッチョイ 5304-eMuy)
2018/09/06(木) 22:04:19.65ID:itCyrIVk0 ホントお前ら人殺すことばっか考えてるよな。
そういうのは良いから初心者殺すのマジやめて。
そういうのは良いから初心者殺すのマジやめて。
289デフォルトの名無しさん (ワッチョイ 27bd-A2Qj)
2018/09/06(木) 22:04:41.28ID:vgkXomJH0 gcの一実装として参照カウンタ方式があるだけで、スマポはgcじゃない。
290デフォルトの名無しさん (ワッチョイ 5304-eMuy)
2018/09/06(木) 22:06:33.66ID:itCyrIVk0 それならそれでいいです。
291デフォルトの名無しさん (ワッチョイ 13b3-7GfT)
2018/09/06(木) 23:18:28.17ID:8cSq8zHP0292デフォルトの名無しさん (オイコラミネオ MM53-EsDf)
2018/09/06(木) 23:34:23.61ID:3bNAvGWPM293デフォルトの名無しさん (ワッチョイ 5304-eMuy)
2018/09/06(木) 23:34:43.07ID:itCyrIVk0 >>289
スマートポインターのうち std::shared_ptr は参照カウンタを内蔵しているのだから
@参照カウンタが GC、故に、std::shared_ptr も GC
A参照カウンタが GC でない、故に、std::shared_ptr は GC でない
@Aのどちらかしかない
参照カウンタが GC なのにスマートポインタが GC でない、というのは矛盾しているのでは?
私は「参照カウンタは GC じゃない」と思う
スマートポインターのうち std::shared_ptr は参照カウンタを内蔵しているのだから
@参照カウンタが GC、故に、std::shared_ptr も GC
A参照カウンタが GC でない、故に、std::shared_ptr は GC でない
@Aのどちらかしかない
参照カウンタが GC なのにスマートポインタが GC でない、というのは矛盾しているのでは?
私は「参照カウンタは GC じゃない」と思う
295デフォルトの名無しさん (ワッチョイ 13b3-7GfT)
2018/09/06(木) 23:48:27.91ID:8cSq8zHP0296デフォルトの名無しさん (ワッチョイ ef02-A2Qj)
2018/09/06(木) 23:52:47.61ID:HW23dE280 >>294
なにも矛盾してないよ。
GCの一実装として参照カウント方式を使ったものがある。
スマホの中に参照カウントを使ったものがある。
だからといってGC=スマポじゃない。
エンジンで走る車があって、エンジンで飛ぶ飛行機があっても、車は飛行機じゃないのと一緒
なにも矛盾してないよ。
GCの一実装として参照カウント方式を使ったものがある。
スマホの中に参照カウントを使ったものがある。
だからといってGC=スマポじゃない。
エンジンで走る車があって、エンジンで飛ぶ飛行機があっても、車は飛行機じゃないのと一緒
>>296
>エンジンで走る車があって、エンジンで飛ぶ飛行機があっても、車は飛行機じゃないのと一緒
is-a の話の例えに has-a の話を使うのは論理的ではありませんね
「車 has エンジン、飛行機 has エンジン」の話と「参照カウンタ is GC、スマポ is GC」の話は別ですよ
>エンジンで走る車があって、エンジンで飛ぶ飛行機があっても、車は飛行機じゃないのと一緒
is-a の話の例えに has-a の話を使うのは論理的ではありませんね
「車 has エンジン、飛行機 has エンジン」の話と「参照カウンタ is GC、スマポ is GC」の話は別ですよ
298デフォルトの名無しさん (ワッチョイ ef02-A2Qj)
2018/09/07(金) 00:12:24.59ID:YR0a2VfT0300はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 966f-7GfT)
2018/09/07(金) 00:17:33.32ID:EL+7DMJm0 参照カウンタは GC だろ。
301はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 966f-7GfT)
2018/09/07(金) 00:22:54.57ID:EL+7DMJm0 >>266
元々の質問はどちらが速いかではない。
元々の質問はどちらが速いかではない。
>>300
では std::shared_ptr も GC でしょうか?
では std::shared_ptr も GC でしょうか?
303はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 966f-7GfT)
2018/09/07(金) 01:28:57.33ID:EL+7DMJm0 >>302
私は std::shared_ptr を GC だと思ってるよ。
解放のタイミングがコンパイル時に確定しないようなのは GC だろってくらいのカジュアルな認識だけど。
基準の妥当性はともかくとして、とにかく私はそういう基準で考えてる。
QZ 氏の中で std::shared_ptr と GC を隔てるのは何だと思ってるの?
私は std::shared_ptr を GC だと思ってるよ。
解放のタイミングがコンパイル時に確定しないようなのは GC だろってくらいのカジュアルな認識だけど。
基準の妥当性はともかくとして、とにかく私はそういう基準で考えてる。
QZ 氏の中で std::shared_ptr と GC を隔てるのは何だと思ってるの?
304デフォルトの名無しさん (ワッチョイ 13ea-OfLu)
2018/09/07(金) 02:17:04.39ID:obwFdGuS0 Qt5触ってみてるけど生ポインタばっか使ってて気持ち悪い、これでいいのか?
305デフォルトの名無しさん (ワッチョイ efd2-7GfT)
2018/09/07(金) 07:52:15.03ID:KDtg+GuV0 GC ⊇ shared_ptr
306デフォルトの名無しさん (ラクッペ MM3b-QWFi)
2018/09/07(金) 08:31:14.42ID:M/DU9wQ1M >>304
生は触って気持ちいいものしかないよ
生は触って気持ちいいものしかないよ
307デフォルトの名無しさん (JP 0He6-O+me)
2018/09/07(金) 11:18:53.99ID:f8oqes6vH parentクラスがあってそれを継承したchildクラスがあります。
vector<parent*> getParentlist(){//省略}でこんな感じでparentクラスのポインタのリストを返す関数があります。
それでここからが質問なのですが、
vector<child*> childList = (vector<child*>)getparentlist();
こういうコードがあってびっくりしています。
機能はしているみたいですがこれ作法的にオッケーなんでしょうか。
ダウンキャストは良くないと聞いていたりそもそもこれダウンキャストなのかとかちょっと分からないんです。
よろしくおねがいします。
vector<parent*> getParentlist(){//省略}でこんな感じでparentクラスのポインタのリストを返す関数があります。
それでここからが質問なのですが、
vector<child*> childList = (vector<child*>)getparentlist();
こういうコードがあってびっくりしています。
機能はしているみたいですがこれ作法的にオッケーなんでしょうか。
ダウンキャストは良くないと聞いていたりそもそもこれダウンキャストなのかとかちょっと分からないんです。
よろしくおねがいします。
308デフォルトの名無しさん (ワッチョイ 9a22-7GfT)
2018/09/07(金) 11:20:41.99ID:/+XJI6DP0 >>281
話が通じてないなあ。。。
デストラクタでuse_count見てるのは当たり前だろ
シェアードポインタの話だぜ?
解放のタイミングがアプリのロジックに従属してるかどうかって話なのに
何を言い出すかと思えば
話が通じてないなあ。。。
デストラクタでuse_count見てるのは当たり前だろ
シェアードポインタの話だぜ?
解放のタイミングがアプリのロジックに従属してるかどうかって話なのに
何を言い出すかと思えば
309デフォルトの名無しさん (ワッチョイ 13b3-7GfT)
2018/09/07(金) 12:35:44.17ID:KEvh9jix0 >>307
試せる限りのコンパイラではそもそもコンパイルエラーだったけどなぁ
vector<parent *> &getParentlist();
じゃなくて??
その上で
(vector<child *> &)getParentlist();
なら通るよ、通るし普通に使えるはず
試せる限りのコンパイラではそもそもコンパイルエラーだったけどなぁ
vector<parent *> &getParentlist();
じゃなくて??
その上で
(vector<child *> &)getParentlist();
なら通るよ、通るし普通に使えるはず
310デフォルトの名無しさん (JP 0He6-O+me)
2018/09/07(金) 13:23:59.20ID:f8oqes6vH >>309
失礼しました。ポインタ抜けてました
vector<parent*>* getParentlist(){//省略}
で
vector<child*>* childList = (vector<child*>*)getparentlist();
こんな感じです
失礼しました。ポインタ抜けてました
vector<parent*>* getParentlist(){//省略}
で
vector<child*>* childList = (vector<child*>*)getparentlist();
こんな感じです
311デフォルトの名無しさん (ワッチョイ 13b3-7GfT)
2018/09/07(金) 13:38:44.48ID:KEvh9jix0 おいおい・・・w
ポインタでも同じことだ、そのキャストをreinterpret_castだと考えたらわかるはず
それでわからないならC++の継承の仕組みを勉強すべき
ポインタでも同じことだ、そのキャストをreinterpret_castだと考えたらわかるはず
それでわからないならC++の継承の仕組みを勉強すべき
312はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 966f-7GfT)
2018/09/07(金) 16:38:51.51ID:EL+7DMJm0 基底方向へのキャストの実態は
サブオブジェクトまでのオフセット分だけアドレスをずらす操作なので、
>>310 のような場合にはそれは実現できない。
単に無理やり型を合わせているだけになってしまっている。
C++ 的にはあかんやつ。
ただ、実際に動いている理由をあえて考察するなら、
child が parent を単一継承した場合などには parent が child の先頭に配置されるようなメモリレイアウトにコンパイルされる可能性が高く、
アドレスをずらす量が 0 で済んでしまうので
型を読み替えるだけでも不整合が顕在化せずに動作してしまうということは有りうる。
あくまでも、処理系がやってることが偶然に組み合わさって動いているというだけなので、やめといた方がよい。
サブオブジェクトまでのオフセット分だけアドレスをずらす操作なので、
>>310 のような場合にはそれは実現できない。
単に無理やり型を合わせているだけになってしまっている。
C++ 的にはあかんやつ。
ただ、実際に動いている理由をあえて考察するなら、
child が parent を単一継承した場合などには parent が child の先頭に配置されるようなメモリレイアウトにコンパイルされる可能性が高く、
アドレスをずらす量が 0 で済んでしまうので
型を読み替えるだけでも不整合が顕在化せずに動作してしまうということは有りうる。
あくまでも、処理系がやってることが偶然に組み合わさって動いているというだけなので、やめといた方がよい。
313デフォルトの名無しさん (ワッチョイ 13b3-7GfT)
2018/09/07(金) 17:46:14.93ID:KEvh9jix0 そこまでご丁寧に説明してやるのなら、「Cスタイルのキャストは使うな」、を教えるべきじゃねーの?
314デフォルトの名無しさん (ワッチョイ 1ee3-7bxL)
2018/09/07(金) 18:34:49.58ID:mMEjLB3K0 parent * が child * なのかも分からないのに強引にキャストするのか
そこまで型無視するなら void * でいいんじゃない 知らんけど
そこまで型無視するなら void * でいいんじゃない 知らんけど
316はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 966f-7GfT)
2018/09/07(金) 20:57:32.70ID:EL+7DMJm0 C++ スタイルのキャストを、特に入門者の内は static_cast だけ使っておけばまあまあ大丈夫。
static_cast でエラーになるような変換は C++ 的にはだいたいイケてないやつ。
static_cast でエラーになるような変換は C++ 的にはだいたいイケてないやつ。
317デフォルトの名無しさん (ワッチョイ 9a22-7GfT)
2018/09/07(金) 20:59:50.93ID:/+XJI6DP0 アホか
dynamic_castが使えないくせに初心者皆伝なんぞやれん
dynamic_castが使えないくせに初心者皆伝なんぞやれん
>>303
>私は std::shared_ptr を GC だと思ってるよ。
…GC発祥の地 lisp の使い手のはちみつさんがそうおっしゃるのなら、私の中の定義も書き換えないといけませんね
mark and sweep GC って、プログラム本体とは関係のないところで、それこそメモリの死にビットをも使ったりして、ごそごそやる、というイメージがあります
>解放のタイミングがコンパイル時に確定しないようなのは GC だろってくらいのカジュアルな認識
>std::shared_ptr と GC を隔てるのは何
「解放のタイミングを図る機構が表のプログラムとは独立している」
くらいでしょうか?表のプログラムからの参照が途切れることと free() されることに直接の関係性がない mark and sweep とその発展型のみを GC とみなしています
といって、GC の本は一冊しか持っていません
>私は std::shared_ptr を GC だと思ってるよ。
…GC発祥の地 lisp の使い手のはちみつさんがそうおっしゃるのなら、私の中の定義も書き換えないといけませんね
mark and sweep GC って、プログラム本体とは関係のないところで、それこそメモリの死にビットをも使ったりして、ごそごそやる、というイメージがあります
>解放のタイミングがコンパイル時に確定しないようなのは GC だろってくらいのカジュアルな認識
>std::shared_ptr と GC を隔てるのは何
「解放のタイミングを図る機構が表のプログラムとは独立している」
くらいでしょうか?表のプログラムからの参照が途切れることと free() されることに直接の関係性がない mark and sweep とその発展型のみを GC とみなしています
といって、GC の本は一冊しか持っていません
319デフォルトの名無しさん (ワッチョイ b3bd-5rD0)
2018/09/07(金) 22:36:10.40ID:OXR/kEGJ0 は○ち○餃子はLisperか
言語選びは慎重にな!
ttps://postd.cc/lisping-at-jpl/
言語選びは慎重にな!
ttps://postd.cc/lisping-at-jpl/
320はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 966f-7GfT)
2018/09/07(金) 22:37:40.84ID:EL+7DMJm0 >>318
定義がひとつでなきゃならないとは思ってないよ。
だから自分なりに一貫した考え方があるのなら、それはそれでいいんじゃないかな。
ただ、「表の機構と分離されているか」という考え方だと、それは抽象化の仕方であって、メカニズム (アルゴリズム) の基準ではないね。
その基準だと std::shared_ptr が GC ではないとは言えても参照カウンタが GC ではないとは言えない。
定義がひとつでなきゃならないとは思ってないよ。
だから自分なりに一貫した考え方があるのなら、それはそれでいいんじゃないかな。
ただ、「表の機構と分離されているか」という考え方だと、それは抽象化の仕方であって、メカニズム (アルゴリズム) の基準ではないね。
その基準だと std::shared_ptr が GC ではないとは言えても参照カウンタが GC ではないとは言えない。
321デフォルトの名無しさん (スプッッ Sd3b-g95O)
2018/09/07(金) 22:45:54.86ID:Gz5E8uWmd お返事遅れました>>213です
Overlappedの設定をCreateNamedPipe時点に引数として渡す構造体ことで同期制御を実現できました
ありがとうございました
メモリリーク探しきつい....
Overlappedの設定をCreateNamedPipe時点に引数として渡す構造体ことで同期制御を実現できました
ありがとうございました
メモリリーク探しきつい....
322デフォルトの名無しさん (アウアウカー Sa33-IcDn)
2018/09/07(金) 22:58:55.32ID:nLV7kBrTa すみません質問があります
メインスレッドと通信スレッドがいて、
通信スレッドはメインスレッドのオブジェクトポインタ持ってます
メインスレッドはクラス化されており、スレッド用のstatic関数以外にもメンバ関数を持っています
通信スレッドがデータ受信して、メインスレッドの別のメンバ関数を呼び出した時、
メインスレッドで実行していた処理はどうなるのでしょうか?
メインスレッドで実行していた処理はあくまでもstaticな関数の処理で、staticでない他のメンバ関数は別に処理されるのでしょうか?
メインスレッドと通信スレッドがいて、
通信スレッドはメインスレッドのオブジェクトポインタ持ってます
メインスレッドはクラス化されており、スレッド用のstatic関数以外にもメンバ関数を持っています
通信スレッドがデータ受信して、メインスレッドの別のメンバ関数を呼び出した時、
メインスレッドで実行していた処理はどうなるのでしょうか?
メインスレッドで実行していた処理はあくまでもstaticな関数の処理で、staticでない他のメンバ関数は別に処理されるのでしょうか?
323はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 966f-7GfT)
2018/09/07(金) 23:04:25.63ID:EL+7DMJm0■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 「国民の憤りを引き起こした」中国側“高市首相発言の撤回改めて要求” [どどん★]
- 【サッカー】U-17日本代表、激闘PK戦制す 北朝鮮撃破で6大会ぶり8強入り U17W杯 [久太郎★]
- 【インバウンド】中国からの“渡航自粛”…ツアー1000人分の直前キャンセル「キャンセル料は免除してくれ」 ことしいっぱいキャンセルに [1ゲットロボ★]
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★3 [ぐれ★]
- 【芸能】日中関係悪化でエンタメ業界に大ダメージ… JO1の中国でのイベント中止、邦画は公開延期、STARTOアイドルへの影響も [冬月記者★]
- 【サッカー】日本代表、ボリビアに3発快勝 森保監督通算100試合目を飾る…鎌田、町野、中村がゴール [久太郎★]
- Perfume・あ~ちゃんの結婚相手の一般男性、吉田カバンの社長と判明 [977261419]
- 自民党議員「高市は先人が築き上げた日中関係を壊した。外務省が謝罪に言ってるが自分で責任を取れ」 [834922174]
- まみちゃん
- ちっしゃーねーな。俺が習近平のアナルに武力侵攻してきてやるよ
- 岡田克也「軽々しく存立危機事態とか言うべきじゃない」高市早苗「台湾で武力攻撃が発生したらどう考えても日本の存立危機事態」 [931948549]
- Doraemon's Solus
