前スレ
C++相談室 part158
https://mevius.5ch.net/test/read.cgi/tech/1636969758/
探検
C++相談室 part159
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2022/02/19(土) 11:56:42.14ID:kSnJ/KwP2022/02/19(土) 12:05:32.96ID:b+8HD1Ua
C(チンチン)+(プラ)+(プラ)
2022/02/19(土) 13:32:43.00ID:rSu4VNCf
アセンブリとかC言語だと「この操作はするな」ってのを簡単には禁止できないからね
許可されてる(コンパイラから怒られない)操作が増えるとその分だけ不正解のコードを書くリスクが高くなる
structのこのフィールドは排他制御してから変更してねってのをC言語じゃ簡単には強制できんだろ
C++ならgetter作ればいいだけなのに
許可されてる(コンパイラから怒られない)操作が増えるとその分だけ不正解のコードを書くリスクが高くなる
structのこのフィールドは排他制御してから変更してねってのをC言語じゃ簡単には強制できんだろ
C++ならgetter作ればいいだけなのに
2022/02/19(土) 13:38:43.35ID:2h4SA+VW
2022/02/19(土) 13:52:37.43ID:2h4SA+VW
カプセル化が簡単にできるというのと、
オブジェクトC := オブジェクトA + オブジェクトB
オブジェクトE = オブジェクトC * オブジェクトD
...
ここで:=は生成、+や*はなんらかのメッセージ(メソッド)
このようにオブジェクトからオブジェクトを作る、的な、
基本単位がオブジェクトなプログラミング環境が維持されないのは
オブジェクト指向プログラミングしているうちに入らないと
思うんですよねー(棒
オブジェクトC := オブジェクトA + オブジェクトB
オブジェクトE = オブジェクトC * オブジェクトD
...
ここで:=は生成、+や*はなんらかのメッセージ(メソッド)
このようにオブジェクトからオブジェクトを作る、的な、
基本単位がオブジェクトなプログラミング環境が維持されないのは
オブジェクト指向プログラミングしているうちに入らないと
思うんですよねー(棒
2022/02/19(土) 15:57:04.56ID:ymxofDah
format.hを待ってますた
2022/02/19(土) 15:59:32.57ID:lVeS0ElI
>>3
でもそのC++からCを見て不正解のコードを書くリスクが高くなるという話がそのまま
RustからC++を見た場合も当てはまってしまうよな
Rustコンパイラならメモリ安全やデータ競合に問題がある操作をエラーで拒否するのにC++はなぜ許して致命的バグを生み出してしまうのだろう、と
でもそのC++からCを見て不正解のコードを書くリスクが高くなるという話がそのまま
RustからC++を見た場合も当てはまってしまうよな
Rustコンパイラならメモリ安全やデータ競合に問題がある操作をエラーで拒否するのにC++はなぜ許して致命的バグを生み出してしまうのだろう、と
2022/02/19(土) 17:53:08.72ID:kSnJ/KwP
無関係過ぎる
元はアセンブラ必須という人が書き込みがあったので、C++のコンパイラ(gcc)がSIMDを吐く条件についての話をしたんだが・・・
それについては正解できる人や惜しい人すら皆無で、馬鹿がC++全然関係ないOOの話を引っ張ってきて、今じゃC++と無縁な宇宙の話になっている
元はアセンブラ必須という人が書き込みがあったので、C++のコンパイラ(gcc)がSIMDを吐く条件についての話をしたんだが・・・
それについては正解できる人や惜しい人すら皆無で、馬鹿がC++全然関係ないOOの話を引っ張ってきて、今じゃC++と無縁な宇宙の話になっている
2022/02/19(土) 18:09:20.91ID:x/upE6G9
自分でこんなレスしといて今更何言ってるんだかw
> 組み込み機器用のCPUって特殊なんで、コンパイラが安定しないなんてよくある話
> オブジェクト指向のメリットの本質についての話なので、可能/不可能が実装言語に依存しないというのもよくある話(楽かどうかは別)
> 別に昭和でも平成でも令和でも変わってないけど、>> 991に伝わってないのは確か
> 組み込み機器用のCPUって特殊なんで、コンパイラが安定しないなんてよくある話
> オブジェクト指向のメリットの本質についての話なので、可能/不可能が実装言語に依存しないというのもよくある話(楽かどうかは別)
> 別に昭和でも平成でも令和でも変わってないけど、>> 991に伝わってないのは確か
2022/02/19(土) 18:26:04.31ID:kSnJ/KwP
馬鹿がID変えてまた登場
2022/02/19(土) 18:50:37.51ID:mDQ0X8WX
明示的にはSSEコンパイラ組み込み関数を使えば実現できるけど、多くのコンパイラはシングルレーンのループの一部を自動的にベクトル化してくれるのね
コンパイラが暗黙的なベクトル化をしてくれる条件ってシングルレーン以外に何があるんだろ
コンパイラが暗黙的なベクトル化をしてくれる条件ってシングルレーン以外に何があるんだろ
2022/02/19(土) 19:09:18.39ID:x/upE6G9
>>10
顔真っ赤じゃんw
顔真っ赤じゃんw
2022/02/19(土) 19:43:50.83ID:kSnJ/KwP
その問題はもう答え書いた
2022/02/19(土) 20:38:46.85ID:x/upE6G9
恥の上塗りかよw
答えを書いたとか関係ないだろ
> 馬鹿がC++全然関係ないOOの話を引っ張ってきて
に乗っといて何言ってるんだよ
答えを書いたとか関係ないだろ
> 馬鹿がC++全然関係ないOOの話を引っ張ってきて
に乗っといて何言ってるんだよ
2022/02/19(土) 21:13:10.67ID:kSnJ/KwP
2022/02/19(土) 21:45:03.99ID:x/upE6G9
人をバカにしても恥ずかしいレスは消えないよw
2022/02/20(日) 02:19:28.36ID:c79emsKu
2022/02/20(日) 05:27:00.10ID:aLhaBLLn
けんかをやめて ふたりを止めて
わたしのために 争わないで
わたしのために 争わないで
2022/02/20(日) 09:25:04.73ID:JXXbW9ML
きみC#さんだよね
2022/02/20(日) 10:18:23.47ID:c+ifp9sQ
2022/02/20(日) 10:23:29.96ID:mD/m0vxj
ゲームはハード性能をゴリゴリに引き出すのが正義だからスマポ程度のオーバーヘッドでも許容できないんよ
2022/02/20(日) 10:30:30.73ID:c+ifp9sQ
>>21
いや俺もゲーム開発しとるけどスマポどころかGC任せにするのがもうここ10年くらいは主流だぞ?(最終的にはネイティブ化されるけどそれでもゼロオーバーヘッドになる訳では全くない)
いや俺もゲーム開発しとるけどスマポどころかGC任せにするのがもうここ10年くらいは主流だぞ?(最終的にはネイティブ化されるけどそれでもゼロオーバーヘッドになる訳では全くない)
2022/02/20(日) 10:31:03.74ID:hF9eBvbm
え?
ゲームでもスマートポインタは普通に使うよ
ゲームでもスマートポインタは普通に使うよ
2022/02/20(日) 10:36:14.20ID:mD/m0vxj
ああ、ゲームって最新の3Dグリグリのやつな(欧米の大手って言うからそっち想像しちゃった)
スマホゲーやブラウザゲーはまた別よ
スマホゲーやブラウザゲーはまた別よ
2022/02/20(日) 10:37:11.73ID:c+ifp9sQ
>>24
タルコフ見て同じ事言える?
タルコフ見て同じ事言える?
2022/02/20(日) 10:40:48.26ID:hF9eBvbm
ID:mD/m0vxj は知ったかぶりだね
なんのためにC++相談室スレにデタラメを書き込んでるの?
なんのためにC++相談室スレにデタラメを書き込んでるの?
27デフォルトの名無しさん
2022/02/20(日) 10:43:58.31ID:h6G+3sJT 共用体が良くわからないのですが、同じメモリーアドレスを複数のメンバで共用するとは
どういうことなのでしょうか?
メモリの節約と書いてあるのですが、よくわかりません。
同じ型の共用体が複数あったときに使ってないメンバ変数が勝手に消されるなんてわけないですよね
どなたか共用体と構造体の違いを教えていただければ幸いです。
(まだクラスについての知識はほとんどないです。)
どういうことなのでしょうか?
メモリの節約と書いてあるのですが、よくわかりません。
同じ型の共用体が複数あったときに使ってないメンバ変数が勝手に消されるなんてわけないですよね
どなたか共用体と構造体の違いを教えていただければ幸いです。
(まだクラスについての知識はほとんどないです。)
2022/02/20(日) 10:51:16.26ID:lvHr33WL
PODで型変換するくらいしか使わんのでは
2022/02/20(日) 10:53:23.74ID:c+ifp9sQ
>>27
とあるデータの見方を複数用意するのが共用体
union { intptr_t integer; void* pointer; } value;
↑が構造体であればvalueはポインタ*2分のメモリを使うところ、共用体だとsizeof(value)は4(32bit)or8(64bit)って感じで変数1個でしかない
integerとpointerは実体は全く同じデータを見ていて、その見方を二つ用意しただけ
value.integer = 8;ってするとpointerも8になる
とあるデータの見方を複数用意するのが共用体
union { intptr_t integer; void* pointer; } value;
↑が構造体であればvalueはポインタ*2分のメモリを使うところ、共用体だとsizeof(value)は4(32bit)or8(64bit)って感じで変数1個でしかない
integerとpointerは実体は全く同じデータを見ていて、その見方を二つ用意しただけ
value.integer = 8;ってするとpointerも8になる
30デフォルトの名無しさん
2022/02/20(日) 10:55:47.01ID:h6G+3sJT え!?メモリの節約ができるの!?
でも・・・制限があるんでしょ?
って感じで気になるのです。
ただ、基底クラスとか継承っていうのがわからないんだけど、
クラスについての記述がもう少し先にあるから、まだクラスの部分について読みたくない
、クラスを学んでから共用体について学んだほうが良いのでしょうか?
でも・・・制限があるんでしょ?
って感じで気になるのです。
ただ、基底クラスとか継承っていうのがわからないんだけど、
クラスについての記述がもう少し先にあるから、まだクラスの部分について読みたくない
、クラスを学んでから共用体について学んだほうが良いのでしょうか?
31デフォルトの名無しさん
2022/02/20(日) 10:56:42.82ID:h6G+3sJT >>29
ありがとうございます今すぐ読みます
ありがとうございます今すぐ読みます
2022/02/20(日) 11:01:01.36ID:mD/m0vxj
そのレベルなら共用体なんて使わないし使うべきじゃないから読み飛ばしていいよ
一通り学習してから戻ってきな
一通り学習してから戻ってきな
2022/02/20(日) 11:02:54.57ID:c+ifp9sQ
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国「国連安保理の許可なしに日本攻撃可能」 Xで旧敵国条項に言及… ★5 [BFU★]
- 中国「国連安保理の許可なしに日本攻撃可能」 Xで旧敵国条項に言及… ★6 [BFU★]
- 【サッカー】U-17W杯 日本代表、無念のベスト8敗退… チャンスは多く作ったが仕留め切れず オーストリアに0-1で敗戦 [冬月記者★]
- 【千葉】コンビニに尿入りペットボトル並べた疑い、26歳男「むしゃくしゃして」…購入した客が飲もうとしたところ臭いに違和感 [ぐれ★]
- 中国官製報道「日本経済はもう持たない」にネット民ツッコミ「ニュースだけ見てたら日本はもう百回くらい爆発してる」 [1ゲットロボ★]
- 植田日銀総裁 「円安進行が物価高を起こしている」 ★4 [お断り★]
- 現役JKのお茶会スレ( ¨̮ )︎︎𖠚ᐝ157
- 自分、馬鹿なのでおっしゃる意味がわかりません
- WTO世界のコメ🌾価格は記録的な豊作により1年で35%下落(5キロで200円程度)と発表※日本は1年で3倍値上がり [709039863]
- 【ぺこ専🐰】なんG 兎田ぺこら突発配信実況スレ🏡【ホロライブ▶】
- 中国大使館、「高市早苗の正体」を完璧に絵にしてしまう。こら才能あるでぇ! [592058334]
- NHKニュースウオッチ9「日本側は対話にオープンな姿勢で安定した日中関係を築きたい考えなのに中国が意固地で糸口が見いだせない」 [904151406]
