C++相談室 part163

■ このスレッドは過去ログ倉庫に格納されています
2022/12/30(金) 23:16:31.37ID:DPUEZfMS0
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
↑同じ内容を3行貼り付けること

次スレは>>980が立てること
無理なら細かく安価指定

※前スレ
C++相談室 part162
https://mevius.5ch.net/test/read.cgi/tech/1667194175/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
2023/02/16(木) 10:03:35.75ID:G6Y1BfCz0
メモリがわからないままC++してもいずれ破綻するのは目に見えてるからな…
shared_ptrを使えば再確保によるポインタの無効化は回避できるかもしれんけど、
そしたら今度は循環参照にはまりそう
2023/02/16(木) 11:32:34.13ID:u/aa82YP0
>>445
>>446

まさにコレでした。

皆様の叡智に脱帽です。
感謝します。

C++って便利だけど難しい局面がすぐ横にある感じでスリリングですね。
そう感じるのは慣れないうちだけなのかもしれませんが。
2023/02/16(木) 11:42:26.72ID:u/aa82YP0
>>458

>あと「訳分からないアドレス」というレベルなら生ポインタは使わない方がいいので、すべてshared_ptrに置き替える。

もともとC言語を触っていたので生ポの方が好きなんです。
でも、スマポに統一すべし、という意見には賛成なので、その様に直すつもりではおりますが、
 enable_shared_from_thisを継承せよ
とか、一方で
 コンストラクタ内でshared_from_this()は使うな
とか、色々クリアせねばならない問題もあり、解決には相当な勉強が必要そうで、時間がかかる見込みです。
2023/02/16(木) 12:24:54.96ID:zXNtK8a2d
自分の頭で考えることを放棄してるやつほど
偉そうにしてるやつの言うがままに洗脳されやすい
2023/02/16(木) 12:25:33.04ID:OOEMlbNYM
>>464
スマートポインタ&参照を使わないならcで十分な気がするなぁ。

むしろcにスマートポインタと参照だけでも追加してほしい。
2023/02/16(木) 12:43:03.84ID:u/aa82YP0
>>466

C++って何だかカッコいいじゃないですか。
noexceptとかC言語な人には無縁なキーワードが盛り沢山だし、いかにもアタマ良さそうな雰囲気がたまらんのです。

C言語でできることはC++でもできるようになりたいな、とゆるゆる独学している次第です。
2023/02/16(木) 13:36:26.42ID:juZ9Em/90
人が書いた部分で警告大量に出るから無視してるんだが
お前ら一人で書いてんのか?
2023/02/16(木) 13:38:12.19ID:kLJI764s0
一番大事なものをちゃんと持ってるな
応援するぜ
2023/02/16(木) 13:39:41.99ID:kLJI764s0
>>468
大量に出る警告には何か原因がありそうなので
それをまず調べる
2023/02/16(木) 13:54:28.24ID:G6Y1BfCz0
>>464
そもそもコンストラクタで子供のインスタンスを作らないほうがいいんじゃね?
2023/02/16(木) 14:00:08.48ID:UCNi870E0
何のために警告出させてんだよ
端からガン無視する気なら、コンパイルオプションで警告止めちゃえよ
473デフォルトの名無しさん (ワントンキン MMfa-EB70)
垢版 |
2023/02/16(木) 14:05:54.88ID:gmYGasSwM
まさにコレでしたって結局どう直したの?
2023/02/16(木) 14:30:11.87ID:G6Y1BfCz0
あとchildObjから削除しないなら、ポインタを辿って探索せんでも、
シーケンシャルナンバーでランダムアクセスすればいいじゃんねぇ
2023/02/16(木) 14:32:02.54ID:G6Y1BfCz0
ああ、インスタンスデータなんか…すまん忘れてくれw
2023/02/16(木) 15:58:03.67ID:INPRljPt0
>>466
「だけでも」っていってもそれに連なる諸々の概念がひっついてるから部分的にやるのは難しいんだよな。

C++ のスマートポインタはクラスとして実装されてるから C++ の型システム抜きに
スマートポインタだけ C に移植ってわけにはいかないし、
参照の振る舞いを説明するには値カテゴリを増やして場合分けしなきゃならんし。
2023/02/16(木) 16:08:00.45ID:u/aa82YP0
ええと、最終的にはファイルから与えたデータに基づいて木構造を構成し、その木構造でナニかしようということを目論んでまして、そうなるとコンストラクタ内で子供のインスタンスを作ればいいんじゃないか、と考えた次第です。

データをあるオブジェクトに喰わせたら、勝手に木構造が出来上がるようにしたかったのです。

で、そのプロトタイプを作る段階でつまづいていた次第です。

とりあえず、皆様のご助言で動くようになったものについては明日以降にw
andboxに貼ります。

引き続きご指導をお願いいたします。
478デフォルトの名無しさん (アウアウウー Sa4f-STvZ)
垢版 |
2023/02/16(木) 16:40:39.41ID:5AcA3bi5a
>>463

>C++って便利だけど難しい局面がすぐ横にある感じでスリリングですね。
>そう感じるのは慣れないうちだけなのかもしれませんが

君は C++ を使ってはいけないレベルと言わざるを得ない
2023/02/16(木) 17:06:59.28ID:hcbjKjsO0
std::mapのinsert()すると、std::vectorみたいにキーや値のメモリ再配置って起きる?
2023/02/16(木) 17:34:19.19ID:of28AX7H0
>>476
メモリ管理だけコンパイラ側でやるなら、クラスその他諸々は無くても大丈夫じゃない?
2023/02/16(木) 17:44:16.85ID:hcbjKjsO0
>>480
回答どもです!そのようですね。
海外のサイトで調べたら、mapの場合はinsertしても
それ以前に挿入した要素のメモリは移動しないようですね。
482デフォルトの名無しさん (スッップ Sdaa-zpWe)
垢版 |
2023/02/16(木) 17:51:19.65ID:OTlvZlbDd
最終的にはメモリ領域の所有権に行き着くはずだが
Cでどうやって所有権の貸し出し/譲渡を表現するんだよ

所有者が複数になる場合もあるんだぞ
2023/02/16(木) 18:34:49.77ID:RFcoGR7kM
>>479
C++はmapはB木を赤黒木で実現しているから、アルゴリズム的には、既存の
ノードのアドレス自体は変えずに、ノードのつなぎ方だけを変えるはず。
ソースを見ないと分からないが。
2023/02/16(木) 18:42:26.35ID:LB1U3BvE0
>>482
shared_ptr 相当をコンパイラーが実装するだけでしょ?
2023/02/16(木) 18:43:11.20ID:9Qy/VbOQa
>>482
CでできないならC++でできない
対偶はC++でできるならCでできる
2023/02/16(木) 18:43:28.33ID:G6Y1BfCz0
>>477
まあ、子供をいくつか作るぐらいなら問題はないかな

ちなみに自分はコンストラクタであまりややこしいことはしないようにしてる
もし大きな処理の結果をもとにインスタンスを初期化したいときは、
全部コンストラクタでやるんじゃなくて、その処理だけを前もって実行してる
2023/02/16(木) 18:46:08.39ID:kdIqPIYR0
std::mapのinsert、emplace、eraseは内部要素へのイテレータを無効化しないことが保証されてる(当然eraseで消した要素そのものは除く)
なおstd::unordered_mapの同名関数はrehashingが起きてイテレータが無効になることがある
2023/02/16(木) 18:59:23.43ID:G6Y1BfCz0
>>484
メモリの解放だけじゃなくてデストラクタも欲しくない?
ファイルを閉じたりしてほしい
2023/02/16(木) 19:08:57.32ID:UWxnAkIX0
>>488
関数のデストラクタ(returnするときに必ず呼ぶ処理)が欲しくなることはあるね
2023/02/16(木) 19:35:21.87ID:LB1U3BvE0
>>488-489
そういうのを検討してるみたい
https://news.ycombinator.com/item?id=22866311
2023/02/16(木) 19:56:28.04ID:G6Y1BfCz0
>>490
deferいいね
いわゆるfinallyみたいなもんかな
今でもやろうと思えば__cyg_profile_func_exitやdetourがあるけど環境依存で重くてめんどいね
2023/02/16(木) 20:41:32.26ID:J+JHFBNF0
数年前にawsの仕事したとき
g++のバージョンが古くて
unique_ptrを使ってたコードを泣きながら
生ポにしたことがある
2023/02/16(木) 20:57:10.46ID:dWYqZniE0
バカかw
自分でクラスを作ればいいだろ
スマポなんてめちゃ簡単な仕組みだぞ
2023/02/16(木) 20:58:28.56ID:INPRljPt0
>>493
右辺値参照の仕組みがないと上手いこと表現できないよ。
2023/02/16(木) 21:02:17.61ID:dWYqZniE0
そこはリファレンスカウンタを使ったトラディショナルな方法でやるのよ
速度は少し遅くなるけど
2023/02/16(木) 21:12:06.74ID:kdIqPIYR0
古いコンパイラで無理やり動かすなら#define unique_ptr auto_ptrという手も…
2023/02/16(木) 21:12:18.96ID:INPRljPt0
すでに std::unique_ptr で正しく動いているコードであるという前提があるなら
たしかにそれでも致命的な矛盾は起きなさそうに思えるな。
2023/02/16(木) 21:50:41.49ID:RFs7/Qh+F
g++なんだから新しいバージョンのをビルドすれば良いじゃん?
2023/02/16(木) 23:12:23.80ID:ZOPwX+PA0
>>461
消す為の変更で再評価
アホらし

何も見ずに?
そんなこと誰か書いたか?
2023/02/16(木) 23:27:28.78ID:UWxnAkIX0
warningだらけだとバグに繋がる重要なwarningを見逃す可能性があるから、可能な限り消した方が良いと思う
どうでもいいやつはコンパイルオプションで消しても良いし
2023/02/16(木) 23:46:07.27ID:LB1U3BvE0
>>499
元々は警告無しで移植で警告になったんだろ?
何千個あろうが見直すのは当たり前だし、いずれにせよ評価は必要
まさか警告出まくってるのに評価無しでOkとかしてるんか?
2023/02/16(木) 23:59:12.84ID:juZ9Em/90
「C/C++ warning一万個全部消してみた」
てタイトルで動画アップして欲しい
2023/02/17(金) 00:31:24.08ID:SMzkkCfo0
ピコーン!全ての警告を無効にすれば良いニダ!
2023/02/17(金) 06:19:19.83ID:KJxAAApA0
>>502
警告が1万種類あるなら大変だけどたいてい種類は限られるだろ
ほんとにコード書いてるのか?
2023/02/17(金) 06:22:34.59ID:t3uhpImP0
「符号付きと符号なしの比較がされました」
分かっとるわ!
2023/02/17(金) 06:27:23.48ID:L7ElXWdV0
それはオーバーフロー起きないかちゃんと確認しないとダメだろ
C++使っててそこルーズなの信じられんわ
2023/02/17(金) 06:31:19.84ID:t3uhpImP0
文字列の長さの比較がintの上限に達することはないし負になることもないのよ
2023/02/17(金) 06:47:57.06ID:L7ElXWdV0
だったら本当にそうであることを確認しないといけないし、そんなものにsignedの変数使ってるのがおかしいかもしれない
その値は本当に文字列の長さか?途中でエラーが起きたら-1とかが入ってる可能性はないのか?
そういう危険なバグの兆候を知らせるためにまともなコンパイラは警告するんだよ
2023/02/17(金) 06:49:33.54ID:L7ElXWdV0
一応言っとくと自分が言ってるのはプロダクトコードの話で
本人がその場でしか使わない書き捨てのオモチャなら勝手にすればいいと思う
2023/02/17(金) 06:55:47.58ID:YltW73tNa
>>505
わかってたら直せよw
そもそもそんな警告が大量に出るほうがおかしいし
2023/02/17(金) 07:09:21.56ID:t3uhpImP0
delphiから移植された関数の殆どが文字数をintで返す仕様でな
それ一々符号なしに変換するのが面倒でな
2023/02/17(金) 07:13:48.65ID:iM8Xviia0
使ってないパラメーターがあります
使ってない関数があります

警告が出ないようにわざわざ使う
ただのアホ
2023/02/17(金) 07:15:49.11ID:L7ElXWdV0
ほとんどなのね
「全部が必ず」正の値を返すことが保証されてるんじゃなければますますチェックコードが必要だな
実にバグが出やすそうな所に見えるね
2023/02/17(金) 07:17:50.92ID:L7ElXWdV0
>>512
使う必要がないなら消せよ
なんかの理由でどうしても残すなら[[maybe_unused]]付けろよ
アホはお前
2023/02/17(金) 07:27:16.44ID:fvM55ACEd
新入り「使ってないから消しました
古株「ちょ・・・おま(汗
2023/02/17(金) 07:30:03.02ID:iM8Xviia0
>>514
ド素人ですか?
2023/02/17(金) 07:32:46.94ID:L7ElXWdV0
え?コンパイラが警告出した変数や関数だろ?使ってないローカル変数や非公開関数なんだろ?
それを消して挙動が変わるってことは何か恐ろしいメモリ破壊系バグが顕在化したってことだ
新人君お手柄やね
2023/02/17(金) 07:50:26.17ID:iM8Xviia0
ド素人丸出しwww
警告警察の中身はこんなレベルのアホ
2023/02/17(金) 07:53:51.79ID:L7ElXWdV0
そうか
お前みたいな自称ド玄人が人命やインフラに関わるコードを書いてないことを願うわ
2023/02/17(金) 08:01:10.11ID:iM8Xviia0
ソフトの品質をコンパイラの警告に頼る方がヤバいと思うよ
2023/02/17(金) 08:14:39.58ID:xqCJita0d
カーエレって割とそんな感じよ
2023/02/17(金) 08:26:51.29ID:CXQijN6cd
コンパイラの警告さえ対処しない奴が品質を語るな
2023/02/17(金) 08:36:18.04ID:iM8Xviia0
コンパイラの警告の数でソフトの品質を語るアホ
2023/02/17(金) 09:18:35.55ID:DsIzGE7Qd
シートベルトしてるだけで安全運転だと思ってる奴はヤバい←正しい
だからシートベルトしなくていい←絶対運転しちゃいけないアホ
2023/02/17(金) 09:52:37.27ID:YLDwb/gm6
>>477

一応の完成版を以下に貼りました。
https://wandbox.org/permlink/lXq19mN1URMQhyh5

生ポをスマポへ変えるのは一旦棚上げしています。
ありがとうございました。
2023/02/17(金) 10:11:56.50ID:sv7zAam40
何も変わってなくね?と思ったら>>426とリンク同じだった

wandboxは共有済みのソースを後から編集できないので
更新するにはもう一回共有して新しくpermalinkを生成する必要がありますよん
2023/02/17(金) 12:12:37.95ID:A4U2N4R7d
対処はしてるぞ
内容を読んだうえでの決定なんだから
2023/02/17(金) 12:16:56.46ID:CMo6McFXd
>>524
シートベルトは法律で決まってる

警告を消すのがルールで決まってる職場なら
警告かルールいずれかを消せ
そうじゃないならどうでもいい

ソフトの品質を担保するなら
警告の中身を見ずに単に隠すのが一番悪い

また
全ての警告を無条件で検証しろというなら
全ての演算も無条件で検証しろ
C++の演算はオーバーフローする可能性があるんだから

無意味な警告は出す方が悪い
コンパイラの設定で無効にしろ
コードを変えて隠す物じゃない
2023/02/17(金) 12:17:47.03ID:CMo6McFXd
コードの検証ならちゃんとした検証ツールを使え
2023/02/17(金) 14:00:35.55ID:YLDwb/gm6
>>526

申し訳ないです。正しくは以下のURLです。
https://wandbox.org/permlink/uHOVPDqphdPBAPQe

ご指摘、ありがとうございました。
531デフォルトの名無しさん (スッップ Sdaa-zpWe)
垢版 |
2023/02/17(金) 18:18:23.14ID:VB0sml4Xd
>>530
流し読んだ感じだけど

1.
void roots( unsigned );
> // 自らがどのようにして生まれたかを調べるメソッド
> // 第 serialNo 番のインスタンスを探索する.

自分の親を探索するのか指定serialNoが子供にいるのかどっちだよ
あと検索なのでメンバを上書きしないはず。関数自体をconstにするべき

2.
engineは親のengineを参照すればいいのでわざわざ引数で受け取る必要はない
コンストラクタは親を受け取るのとengineを受け取る2種類用意したほうがいいんじゃない?

3.
numberフィールドはいらん(名前もchildCountに変えるべきだが)
childObj.size()を見ればいい
getter関数作ったほうがいい

4.
isLeafフィールドもchildObj().size()==0見れば判断できる
532デフォルトの名無しさん (ワントンキン MMfa-EB70)
垢版 |
2023/02/17(金) 18:50:34.09ID:HTK/9d/ZM
もう解決してんだからアドバイス気取りでがんばって蛇足を加えんでもいいよ
2023/02/17(金) 21:00:18.60ID:RlPt61in0
>>531

そこで図々しいお願いですが、そのように改造してくださると私にとって大いに勉強になります。
一肌脱いではいただけませんでしょうか?

生ポをスマポに直すのすら頭を抱えているヘタレなので、ここに棲まう先輩方のご鞭撻を是非に賜りたいです。
2023/02/17(金) 21:26:59.48ID:L7ElXWdV0
>>528
分かってんじゃん
C++の整数演算は無条件で全て検証が必要だよ
おっしゃる通りオーバーフローするかもしれないし、それが大きなセキュリティ問題につながった例もたくさんあるからね
特にナイーブにsigned/unsigned間比較や縮小変換をしてる所は危険だし、それを知らせてくれるコンパイラ警告は実に有用なものだ

もちろんプロダクトコードの話ね
2023/02/17(金) 22:01:30.31ID:wDoqrfUd0
縮小変換が警告されるかどうかと問題が起きないようにロジック組んであるかどうかは別問題だね
2023/02/17(金) 22:05:57.15ID:L7ElXWdV0
それはそう
コンパイラが知らせてくれるのは一番基本的な所だけだからな
逆に言えばそれすら対処してないようじゃ0点
537デフォルトの名無しさん (スッップ Sdaa-zpWe)
垢版 |
2023/02/17(金) 22:14:14.63ID:VB0sml4Xd
>>533
丸投げすんな自分でやれ
2023/02/17(金) 22:17:56.86ID:wDoqrfUd0
>>536
何がそれはそうなの?
2023/02/17(金) 22:41:19.78ID:iM8Xviia0
>>534
警告に惑わされずに全部見ろ

>>536
警告を隠すのと問題が無いことを確認するのをごちゃ混ぜにするアホ
2023/02/17(金) 22:44:01.98ID:KJxAAApA0
>>512
> 警告が出ないようにわざわざ使う
えっ、そんなレベルなのw
そりゃそんな職場なら
> 警告を消す為にバグを仕込むヤツを何度も見てきた
とかもあるんだろうな...
なんか可哀想になってきたわ
2023/02/17(金) 22:46:57.97ID:mQelUUv/0
>>467

> std::unordered_mapの同名関数はrehashingが起きてイテレータが無効になることがある

その場合でもvalue側のメモリは固定でしょうか?
2023/02/17(金) 22:48:24.15ID:mQelUUv/0
失礼、↑は>>487の間違い
2023/02/17(金) 22:54:29.06ID:iM8Xviia0
>>540
警告を消すためにわざわざ使うマクロを知らんのか
2023/02/17(金) 22:56:59.77ID:iM8Xviia0
◯◯のコンパイラや◯◯のチェックツールで警告が出るから直しとけ
って言われたら何の疑問も持たずに直すの?
◯◯はバグの元だから直せって言われたら
何の疑問も持たずに直すの?
思考停止?
2023/02/17(金) 23:43:41.95ID:KJxAAApA0
>>543
なんのマクロのことを言ってるのか知らんけどそんなの処理系によって違うだろ
最近の流れは>>514のような属性指定
2023/02/17(金) 23:45:03.57ID:BuPJ3Mmy0
ぶっちゃけテストしてるなら警告放置でもいいけど、
テストするような人は警告にも対処するからな
2023/02/17(金) 23:48:24.98ID:KJxAAApA0
>>544
指摘されてるんだからなぜその指摘が出てるのか調べて直すなり警告抑止するなりするだろ
なぜなんの疑問も持たずにとか出てくるのか不思議だけど君の職場ではそうなんだろうねw
2023/02/17(金) 23:53:50.54ID:wDoqrfUd0
見も知らん第三者にwell-formedなコードにケチつけられたら
言いなりにしろと押しつけてくるやつ、自分の姿をビデオでも鏡でもいいから見てみたら?
2023/02/18(土) 00:40:30.23ID:U7F6huSe0
多分「直す」を「何も考えずに警告抑止なりキャストなりで握り潰す」の意味で言ってるから噛み合ってないんだと思う
警告無視マンセー君以外はもちろんバグがないか確認した上で範囲チェックやクランプや(問題ないことを確認して)キャストなどを加えてプログラムを改良する意味で言ってる
2023/02/18(土) 02:15:58.71ID:AZBhix5KM
>>541
value のアドレスは変更になるが、valueが構造多やクラスで、中にポインタが
有るような場合は、そのポインタの値は変更されない。
2023/02/18(土) 02:21:04.46ID:AZBhix5KM
>>550
間違いました。unorderd_map の rehashingについて、こう有ります:
https://cplusplus.com/reference/unordered_map/unordered_map/rehash/
>Iterator validity
>If a rehash happens, all iterators are invalidated, but references and pointers to individual elements remain valid.
>If no actual rehash happens, no changes.

なので、iteratorは無効化されるが、個々の要素への参照やポインタは有効なまま残ります。
2023/02/18(土) 03:03:49.37ID:AZBhix5KM
>>551
ソース読まないとはっきりしないけど、恐らく、イテレーターが指している
オブジェクトのポインタを取得すると以前と同じ値になっている。
しかし、イテレーターには ++ で直後の要素に移動する機能が有る。
恐らくその機能が正しく働かない場合があるということらしい。
ゴミレスでごめん。
2023/02/18(土) 06:19:29.80ID:hapPzQ8z0
>>549
いろんな方法で検証は当然行う
コードを変えてわざわざ警告を隠す作業はしない
2023/02/18(土) 06:45:26.64ID:hapPzQ8z0
キャストして警告を隠す事がプログラムの改良だと思ってるアホとは会話しても無駄だな
2023/02/18(土) 06:50:44.99ID:FqZBdMS3d
>>548
それだと多分うっとりしておしまいになるやつ
2023/02/18(土) 07:23:37.23ID:/Gi8XN260
ナルシストか
そうだろうな
2023/02/18(土) 07:58:59.69ID:c4QxGie20
> キャストして警告を隠す事がプログラムの改良だと思ってるアホ
>>554 のことだなw
2023/02/18(土) 09:42:41.72ID:U7F6huSe0
まだ直すと隠すの区別ついてないアホのためによくある例書いとくね

std::vector<Foo> foos = /* なんか入ってる */
for(int i = 0; i < GetLegacyLength(); ++i){
 Hoge* item = GetLegacyItem(i);
 if (i < foos.size()) // WARNING: signedとunsigned比較してんぞ
 { hoge(foos[i], item); }
 else
 { fuga(item); }
}
アホの隠し方(1):脳死でif文のiかfoos.size()をキャストして隠蔽
アホの隠し方(2):脳死でiの型をsize_tに変更、そしてi < GetLegacyLength()でまた同じ警告が出て激怒「コンパイラの警告なんて無意味だ!」

正しい直し方:
なぜ長さを返すのに戻り値型がintなのか、GetLegacyLength()のマニュアルを見て仕様を確認する。
するとある条件でエラー値として-1を返すことがあると判明したので、
forループの前にGetLegacyLength()を取得するようにして、負の場合のエラー処理を追加した。

/*略*/
int len = GetLegacyLength();
if (len < 0) { /* エラー処理 */ }
else {
 for(size_t i = 0; i < static_cast<size_t>(len); ++i) { //lenは0以上と確認済みなので安全にキャストできる
/*略*/
2023/02/18(土) 09:55:17.94ID:q7/8BBWI0
>>558
そもそもforの条件判定の部分で関数を呼ぶのは間違いだ
2023/02/18(土) 10:01:12.90ID:U7F6huSe0
そこは間違いコード例だから意図的にそうしたんだけど
元がfor(int i = 0, len = GetLegacyLength(); i < len; ++i)だとしても話の本旨には関係ないよね?
お前が警告無視する時みたいに脳死で食いつくからそうなる
2023/02/18(土) 10:30:22.39ID:Cp9I+Lmgd
警告を無視するのと握りつぶすのを混同しとるな
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況