X



C++相談室 part162
レス数が1000を超えています。これ以上書き込みはできません。
0001sage (ワッチョイ fbf0-ofdD)
垢版 |
2022/10/31(月) 14:29:35.57ID:J5sgTSch0
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
↑同じ内容を3行貼り付けること

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

※前スレ
C++相談室 part161
https://mevius.5ch.net/test/read.cgi/tech/1653135809/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
0953天災 ◆41t0I.PYBW0z (ワッチョイ b101-jXNG)
垢版 |
2022/12/27(火) 13:35:30.55ID:QO3hLMTW0
>>951
初めて聞いたよ
0955デフォルトの名無しさん (スップ Sd03-4fWv)
垢版 |
2022/12/27(火) 13:43:49.52ID:WVVp8u06d
>>954
何が問題なの?何だろうと問題にしないのが未定義という事だぞ
それ以上言うなら「未定義といえどもコンパイルとリンクは必ず通らなければならない」って規格書に書いてある場所提示してね
0960デフォルトの名無しさん (スップ Sd03-4fWv)
垢版 |
2022/12/27(火) 13:59:01.95ID:WVVp8u06d
>>956
ゴミ持って来んな
しかもそのゴミにもコンパイル前にチェックしてもいい(しなくてもいい)って書いてあるやんけ
>>957
コンパイル出来なかったら問題だとかいう寝言言い出したのはお前の方だろうが
0964デフォルトの名無しさん (ワッチョイ cf9c-iijX)
垢版 |
2022/12/27(火) 14:42:36.98ID:kLAEuBfs0
>>956
未定義動作はc++標準の規定外というだけで、エラーになるかどうかは全く関係無い。エラーにしてもエラーにしなくてもc++標準には違反しない。

www.open-std.org/jtc1/sc22/wg21/docs/standards
N4849.
3.28 未定義の動作
この文書が要求していない動作
[項目への注記 1: 未定義の動作は,この文書が動作の明示的な定義を省略したとき,又はプログラムが誤った構成又は誤ったデータを使用したときに予想されるかもしれない。
未定義動作は,この文書が動作の明示的な定義を省略した場合又はプログラムが誤った構成若しくは誤ったデータを使用した場合に想定される。許容される未定義の動作
予測できない結果をもたらす状況の完全な無視から、翻訳中またはプログラム実行中に特徴的な文書化された方法で動作することまで、許容される未定義動作の範囲があります。
環境に応じて文書化された方法でプログラムの実行を行う(診断メッセージの発行の有無は問わない)。
また、翻訳や実行を終了する(診断メッセージを発行する)こともあります。)
多くの誤ったプログラム構成は、未定義の動作を発生させるものではなく、診断が必要なものである。
定数式の評価は、本書第 4 条から第 15 条で明示的に未定義と指定された動作にはならない。
から第15項(7.7)までに明示的に未定義と指定された動作を示すことはない。- エンディングノート]
0965天災 ◆41t0I.PYBW0z (ワッチョイ b101-jXNG)
垢版 |
2022/12/27(火) 14:53:01.92ID:QO3hLMTW0
>>964
有難う
用語は注意して使わないとね

>>865の質問を正確にすると
前方宣言を自分のソースに追加すると
ビルドはできるが動作が未定義となる設計は本当にあるの?
(もちろんstdは懸案事項なので保留するとしてそれ以外でね)
0967はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 6d3e-aH43)
垢版 |
2022/12/27(火) 15:37:36.05ID:G9AKlNLO0
言語的には仕様通りの解釈をするがそれがそのライブラリにとって想定外であるような、
つまり本来の動作と異なる結果を引きおこすような形での前方宣言がありうるかという意味だろ。
0972デフォルトの名無しさん (ワッチョイ 8d01-s0Sd)
垢版 |
2022/12/27(火) 21:38:26.75ID:Q5qxYeje0
じゃあ、ISOで未定義の時は、コンパイラの仕様を調べて使えば良いのでは?
0974天災 ◆41t0I.PYBW0z (ワッチョイ b101-jXNG)
垢版 |
2022/12/27(火) 22:06:21.35ID:QO3hLMTW0
>>968
確かに前方宣言で挙動変わるね
しかしこのトリッキーな例をもって
前方宣言を自分の管理外の名前空間(std以外でも)に
追加するのが危険と言って良いものかは正直悩む
0975天災 ◆41t0I.PYBW0z (ワッチョイ b101-jXNG)
垢版 |
2022/12/27(火) 22:15:15.29ID:QO3hLMTW0
>>972,973
俺は絶対にstdはいじらないね
0976デフォルトの名無しさん (ワッチョイ 8d01-s0Sd)
垢版 |
2022/12/27(火) 22:17:12.44ID:Q5qxYeje0
じゃあ俺もそうする。
0977デフォルトの名無しさん (ワッチョイ 97ad-dxp0)
垢版 |
2022/12/27(火) 22:18:07.71ID:xkGd3ITG0
自作クラスでendlなどのマニピュレータをオーバーライドするにはstd名前空間に入れるしかないじゃない?
0978デフォルトの名無しさん (ワッチョイ 5b10-WyE/)
垢版 |
2022/12/27(火) 22:19:58.45ID:Kk7zAeAV0
つうかstdが「標準である」と言う設計上前方宣言を禁止したから仕様上未定義動作となっただけの話で
危険だから前方宣言すべきじゃないって話じゃないと思うよ
結果的にコンパイラ側がそれを逆手にとって最適化とか推し進めた形になったとしてもね

前方宣言許さない仕様のライブラリって言うのは危険だからじゃなく
勝手に拡張すること許さないと決めたライブラリであるというだけの話で
0979デフォルトの名無しさん (ワッチョイ 8d01-s0Sd)
垢版 |
2022/12/27(火) 22:24:30.48ID:Q5qxYeje0
>>977
ストリームはホント腹立つよな。
ぶっ飛ばしたくなってきた。
30年くらい怒りが収まらん。
0982デフォルトの名無しさん (ワッチョイ 9fea-ij7E)
垢版 |
2022/12/27(火) 23:26:06.87ID:VvvSD8wK0
ostream と istream の別の建てつけなので、ファイルポインタもこの二つのクラスで別なんだろうと思っていたら、土壇場で、実はファイルポインタは共有していましたぁ
とか勘弁してほしいと痛切におもいましたねえ
0985デフォルトの名無しさん (テテンテンテン MM97-iijX)
垢版 |
2022/12/28(水) 08:09:55.49ID:jVoOqLVQM
>>978
そういうのは「改造c++」とでも言うべきもので、個々の具体的な実装を挙げて話すべき話題。
具体的な実装の無い「改造c++」なんて「オレ言語」でしかないから、話題にしても相手にするヤツは居ないよ。興味無い。
0986デフォルトの名無しさん (アウアウウー Sa1f-SHOq)
垢版 |
2022/12/28(水) 16:02:37.97ID:wx2BQ76Ga
>>981
まさかプロトタイプが30年後も使い続けてるとは思わなかったんだよ
0987はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 6d3e-aH43)
垢版 |
2022/12/29(木) 22:47:04.14ID:J2+EgPHK0
>>974
「わからない」という状態が最大のリスクだ。 精査して事情を把握してからやる分にはいいよ。
だけど少なくとも私はいちいちライブラリの細かいことなんて調べたくないし、
細部の事情まで読み解ける自信はないから製作者の意図 (仕様として明示されている範囲) を超える
ような使い方をあえてすることはないだろうという話。 要するに割に合わない。
しなくていいことはせずに済ませられたらそのほうがいいだろ。

割に合うと考えている人がいたとしたら
「んなわけねーだろ。 お前が調べるのに労力をかけてないだけ」
と思うから安易にやっちゃうやつはちょっとナメてるように感じる。

そりゃあ他に打てる手がなければ割に合わなくてもやらざるを得ないことだってあるだろうけどさぁ。
0991デフォルトの名無しさん (ワッチョイ 5328-gB2L)
垢版 |
2022/12/30(金) 13:31:38.92ID:p0azBXIn0
std名前空間への勝手要素追加は未定義動作と書かれているのに
std名前空間内のクラスへのメンバ追加についてはなんで言及が無いのやろうな……
名前空間もクラスもPGの責任分担範囲の区切りみたいなもんで、
第三者に後から勝手に弄られたら設計したPGが困るのは同じだと思うのだけど、
0998デフォルトの名無しさん (ワッチョイ 97ad-dxp0)
垢版 |
2022/12/30(金) 17:36:57.79ID:oiKCiiXa0
後のこと考えて設計するよりも先に手が動くような人じゃないとプログラミングは上達しないよ
1000デフォルトの名無しさん (スプッッ Sddb-tLuz)
垢版 |
2022/12/30(金) 18:20:10.37ID:2kXrfTwwd
昔はさ、ウォーターフォールといって
完璧な設計ができるまでコードに手を出すな
設計が決まったら黙ってそれに従うコードを書け
なんてのがあったけど
前例のないものの完璧な設計なんてほいっとできるのか
現場からのフィードバックを無視なんてできるのか
って反省から今時の方法論ができているわけで

ただし、それを悪用するだけの寄生虫を擁護はしない
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 60日 3時間 50分 35秒
10021002
垢版 |
Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。

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