1 名前:sage [2022/10/31(月) 14:29:35.57 ID:J5sgTSch0.net] !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
910 名前:デフォルトの名無しさん [2022/12/26(月) 23:57:12.44 ID:YnLWxzzl0.net] >>882 >>859 に書いてあるから読みたまえ
911 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 00:01:58.
] [ここ壊れてます]
912 名前:89 ID:QO3hLMTW0.net mailto: >>820 思ったんだけどさ前方宣言は`declarations'に入ってないってことはないかな? 以下が原文なんだけども >Unless otherwise specified, the behavior of a C++ program is undefined >if it adds declarations or definitions to namespace std or to a >namespace within namespace std. 文からは入ってるとも入ってないとも俺には判断がつかない 確かな見解がある人はいるかな? [] [ここ壊れてます]
913 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 00:11:56.45 ID:9ztV+U0x0.net] >>884 答えに窮しているんなら駄レスしねえで黙ってろ てめーの言葉で語れないフリーライダーが 生産性のないやつはプログラマのゴミの中のゴミだ
914 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 00:13:15.81 ID:fnhKiHjQ0.net] >>884 >859の言う「ダブルスタンダード」は>862-864で否定されて終わってるだろ。
915 名前:デフォルトの名無しさん [2022/12/27(火) 00:14:08.27 ID:QO3hLMTW0.net] >>886 >>859 は俺の投稿だよw
916 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 00:16:20.11 ID:9ztV+U0x0.net] >>888 ゴミめ
917 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 00:18:30.98 ID:9ztV+U0x0.net] ヘッダファイルそのものを改造することだってできる ISO/IEC14882のヘッダファイルだけ改造しちゃいけなくて それ以外のヘッダファイルは改造していいことにしたいのかよ ダブスタだからって? バカか
918 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 00:20:13.94 ID:9ztV+U0x0.net] 標準のヘッダファイルを書き換えるななんてバカ用の説明が規格票の中に書いてあるかどうか知らんが そういうレベルの屁理屈ならべてんなボケが
919 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 00:21:11.64 ID:QO3hLMTW0.net] >>887 >>865 以降も読んでくれ給え 前方宣言で鼻から悪魔が出るケースは名前空間std以外ではない コンパイルエラーやリンカーエラーで弾ける 名前空間stdでもないと思い始めている 規格の`declarations'は普通の宣言のことで 前方宣言はこれに入らない説に傾いてきた
920 名前:デフォルトの名無しさん [2022/12/27(火) 00:22:43.58 ID:QO3hLMTW0.net] >>889 3行目に書いてあるから読みなよ
921 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 00:23:47.05 ID:QO3hLMTW0.net] >>890 ,891 何で標準のヘッダファイルを書き換える話を始めてるの?
922 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 00:28:00.93 ID:QO3hLMTW0.net] >>820 >>>818 >原則としては std 名前空間になんらかの宣言や定義を追加したら未定義ということになってる。 >https://timsong-cpp.github.io/cppwp/n4861/namespace.std >その事例も該当すると思う。 これが正しいかもしれんし違うかもしれん
923 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 00:33:27.20 ID:9ztV+U0x0.net] >>893 うるせえ命令すんな 読んで欲しければ読みたくなるようにお前が努力しろカス
924 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 00:34:29.25 ID:9ztV+U0x0.net] >>894 一緒だろうがよ stdの中に働きかけて動作を変えようって話だろ stdだけそれをするなというのがダブスタなんだろ
925 名前:デフォルトの名無しさん [2022/12/27(火) 00:36:22.67 ID:QO3hLMTW0.net] >>896 俺は優しいからね >>859 >以下をユーザが自分のソースに書くのは>>820 の言うように規格で禁じられている >namespace std { > template <class T, std::size_t N> > struct array; >} 規格で禁じられていると書いている人間が 「できることとやっていいことは違うということを区別して」いないわけなかろう
926 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 00:36:52.90 ID:9ztV+U0x0.net] 作者がするなということをなぜしたいんだよ 脱獄したきゃ勝手にやってろ 誰も止めやしねえよ バカ一匹どうなろうが誰も知ったこっちゃねえ
927 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 00:37:18.87 ID:QO3hLMTW0.net] >>897 >stdの中に働きかけて動作を変えようって話だろ 違います
928 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 00:41:27.03 ID:QO3hLMTW0.net] >>899 規格の英文が曖昧だから読み間違えてんじゃないの? って思い始めてる
929 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 00:42:11.81 ID:9ztV+U0x0.net] ああそうかい 勝手に思ってな
930 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 00:43:47.73 ID:QO3hLMTW0.net] >>902 規格は読んだのかな?
931 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 00:47:28.29 ID:R1/11RYB0.net] >>879 >>870 ドヤア
932 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 00:49:39.31 ID:QO3hLMTW0.net] >>904 定義を書いたらこの問題は起こるね 前方宣言では起こらない
933 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 00:50:13.48 ID:R1/11RYB0.net] 「勝手に」が抜けてたorz X=サンが*勝手*に追加した "bar.h" にて void oresama:foo()を定義のを知らずに Y=サンが "baz.h" にて同じシグネチャで異なる実装の void oresama:foo() が実装されてしまう と言う場合は覿面に意図しない動きになる(ことがある
934 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 00:51:22.27 ID:R1/11RYB0.net] >>905 定義の無い前方宣言とか何のためにするんじゃ……
935 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 00:53:18.15 ID:QO3hLMTW0.net] >>870 はリンカーがチェックすればこの問題は起こらないはずなんだけど 意図的にオーバライドできるようになってるとか 何かで読んだ気がする...
936 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 00:54:50.91 ID:QO3hLMTW0.net] >>907 ヘッダをできるだけincludeしたくないから ヘッダをincludeしたくないのは依存ヘッダを減らしたいから みんなpimplとかで前方宣言してるやろ?
937 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 00:54:51.28 ID:9ztV+U0x0.net] >>903 読んでるよ どのくらいか指定がないからどうにでも言えるw 苦し紛れに何が言いたかったのかな
938 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 00:56:18.99 ID:QO3hLMTW0.net] >>910 ではあなたは`declarations'に 前方宣言が含まれるとの見解でよろしいか?
939 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 00:58:30.57 ID:9ztV+U0x0.net] >>911 前方宣言て何? JIS X3014の規格票を検索してもヒットしないんだが
940 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 00:59:25.89 ID:QO3hLMTW0.net] forward declarationじゃないかな? ない?
941 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 01:03:39.45 ID:9ztV+U0x0.net] さあ知らんね おまえの曖昧さを俺が処理してやる義理はない
942 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 01:06:05.88 ID:9ztV+U0x0.net] 技術板で煽りネタが英語力とかくだらんな 英語圏在住のバカと同類だってアピールしたら格好いいんかよw
943 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 01:08:38.87 ID:QO3hLMTW0.net] >>915 規格が英語で書かれてるんだから仕方ないじゃないか >>914 威勢が良い割には逃亡か 根性がねーな
944 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 01:12:56.49 ID:9ztV+U0x0.net] 煽っても無駄だよ 義理のないことの特別サービスをさせたいようだが 世の中そう甘くはない 暇人と違って明日も朝から仕事なんだよ バイバイ
945 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 01:14:43.51 ID:QO3hLMTW0.net] >>916 おまいさんは威勢よく俺を煽ってたけども 規格も読んでなかったということだ 根拠としたのは恐らく>>820 の書き込みのみ 俺は純真なので痛く傷ついたんだよ 他人の言説を無批判に信じて自らは確かめることなく 人を攻撃することはやめてくれ
946 名前:はちみつ餃子 mailto:sage [2022/12/27(火) 01:34:54.20 ID:G9AKlNLO0.net] 前方宣言が宣言でない可能性なんて考えたこともなかったが たとえば単にポインタと書いてあるときにメンバ関数ポインタを含んでなかったりすることを 思い出せば変な用語になってる可能性は考慮にいれるという姿勢は必要かもしれない。 あらためて検討してみたところ、前方宣言という用語の直接的な定義はないが仕様中で 前方宣言 (forward declaration) と呼ばれているものは宣言に該当するし、 単に宣言の位置が前方である宣言のことを前方宣言と呼んでいると解しても良いと思う。
947 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 02:38:42.00 ID:Kk7zAeAV0.net] 未定義動作だから宣言禁止してるんじゃない 宣言禁止してるから未定義動作になったんだ
948 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 02:48:53.38 ID:fnhKiHjQ0.net] >>892 >865の質問は>866,868で答えが出てて、その前の話に影響無いし・・・と読み進めると >872で「前方宣言は規格で合法」とかいう当たり前に見える意味不明な話につづいており・・・ どうも>859以降の「合法」が↓のようなよくある解釈とは違うようであることに気付いた。 https://cpprefjp.github.io/implementation-compliance.html > 合法 (legal)・違法 (illegal): これらの語はプログラムに対しても慣用されるが、具体的な意味は明確でない。 プログラムの正しさには複数の水準があるためである。 適格、またはすべての規則を満たす、または未定義の動作を含まないなどが考えられる。 明確な言葉で言い換えられるまで下手に考えても不毛そう。
949 名前:「前方宣言は」というのも「ユーザー側コードに~な前方宣言を加えて利用していた場合にライブラリ更新があっても~」 とかいう意味になりそうだけど端折りすぎて意味不明になってる。 「鼻から悪魔」は未定義動作と同じ意味のつもりで使ってそうだけどコンパイルエラーやリンクエラーは除くようでもあり これも未定義動作とは違う何か。 さっきキレちらかしてた人もこんな感じで我慢できなくなったんだろう。 明確な用語を使うように気を付けて主張を整理しないと、君とまともに会話してくれる人居なくなると思うよ。 [] [ここ壊れてます]
950 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 07:37:18.96 ID:GSvWJ+1+0.net] 「天才のぼくちんの完璧なレスを理解できない無能なお前らが悪い!」って暴れ出すいつもの奴だからもう放っとけよ
951 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 07:46:03.70 ID:nX/ozHbV0.net] 事実と挙動だけ書けばいい
952 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 08:04:36.52 ID:l/ni+ylad.net] ハッシュ小僧か
953 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 11:12:03.63 ID:QO3hLMTW0.net] >>921 鼻から悪魔はコンパイルエラーやリンカーエラーは当然含まない 何人か知らないようだけどもひょっとして自演してるの?
954 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 11:18:29.54 ID:QO3hLMTW0.net] >>921 したがって>>865 の答えは出ていない 名前空間stdは>>820 のdeclarationsに 前方宣言が入るとは限らないので 答えにはならない それと俺は天才くんとは別人 横からちゃちゃ入れてる人だよ
955 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 11:39:33.69 ID:2fUOYjFgd.net] はいはい、別人なんでちゅね~ ニヤニヤ
956 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 11:43:36.77 ID:QO3hLMTW0.net] >>927 例えば>>654 が俺だよ
957 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 11:44:56.74 ID:2fUOYjFgd.net] それでそれで?
958 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 11:45:14.64 ID:QO3hLMTW0.net] おんなじワッチョイ検索してね
959 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 11:45:28.77 ID:fnhKiHjQ0.net] 「いつもの奴」が一人ということも無いからな。悲しいことに。 コテハン付けてくれない?
960 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 11:46:04.33 ID:QO3hLMTW0.net] 天才くんほどの実力はないです
961 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 11:46:30.13 ID:QO3hLMTW0.net] >>931 どうやってつけるの?
962 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 11:58:22.17 ID:fnhKiHjQ0.net] >>933 https://www.google.com/search?q=5ch+%E3%83%88%E3%83%AA%E3%83%83%E3%83%97
963 名前:天災 mailto:sage [2022/12/27(火) 12:02:33.04 ID:QO3hLMTW0.net] >>934 Thanks!
964 名前:デフォルトの名無しさん (ブーイモ MM21-5fcg) mailto:sage [2022/12/27(火) 12:03:58.07 ID:ifNnQS7gM.net] >>837 本題と関係ないけどこれって CTAD 関連含めて挙動完全に大丈夫なんか?少なくとも C++17 ではダメだが
965 名前:天災 ◆41t0I.PYBW0z (ワッチョイ b101-jXNG) mailto:sage [2022/12/27(火) 12:04:16.27 ID:QO3hLMTW0.net] 俺は天才なんて呼ばれたことはないが 天才と呼ばれた人だこのスレで呼ばれたw
966 名前:天災 ◆41t0I.PYBW0z (ワッチョイ b101-jXNG) mailto:sage [2022/12/27(火) 12:04:54.10 ID:QO3hLMTW0.net] 天才と呼ばれた人だ<と>このスレで呼ばれたw
967 名前:デフォルトの名無しさん (ワッチョイ 6d5f-aH43) mailto:sage [2022/12/27(火) 12:12:33.94 ID:fnhKiHjQ0.net] ありがとうございます。助かります。
968 名前:天災 ◆41t0I.PYBW0z (ワッチョイ b101-jXNG) mailto:sage [2022/12/27(火) 12:13:50.33 ID:QO3hLMTW0.net] いえこちらこそ
969 名前:デフォルトの名無しさん (スッップ Sd57-Xl/E) mailto:sage [2022/12/27(火) 12:17:08.49 ID:XYKyOOkrd.net] >>865 の結論て>>866 で終わってると思うんだけど 前方宣言がdeclarationじゃないとか曲解だろ たまたま先に同じ型で宣言するという技法がテクニックとして成立するだけ
970 名前:天災 ◆41t0I.PYBW0z (ワッチョイ b101-jXNG) mailto:sage [2022/12/27(火) 12:29:08.28 ID:QO3hLMTW0.net] 前方宣言が確かに>>820 の`declarations'に含まれる根拠があれば示して下さい 前方宣言で鼻から悪魔が出ることは 懸案事項の名前空間stdの場合は保留として他にないと思う >>837 はコンパイルエラーで弾かれるので鼻から悪魔は出ない あれば教えて下さい
971 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 12:55:07.85 ID:XYKyOOkrd.net] まずあなたがどっちもdeclarationなのにただのテクニックである前方宣言が含まれない理由を
972 名前:示すべきだろう [] [ここ壊れてます]
973 名前:天災 mailto:sage [2022/12/27(火) 13:01:14.48 ID:QO3hLMTW0.net] >>943 俺は入るとも入らないとも根拠がないので保留だよ どちらかの根拠があれば解決だね
974 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 13:09:43.62 ID:WVVp8u06d.net] >>925 コンパイルエラーやリンクエラーも未定義動作で起こりうる事の一つなんだけど どういう理屈で鼻から悪魔から除外されるの?
975 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 13:10:56.66 ID:8Y7pY2Mbd.net] それは違うだろ
976 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 13:18:26.61 ID:WVVp8u06d.net] 違わないよ 何でも起こりうるのが未定義動作だ お前はコンパイルエラーの方が鼻悪魔出現よりも非現実度が高いと思ってるの?
977 名前:天災 mailto:sage [2022/12/27(火) 13:19:13.33 ID:QO3hLMTW0.net] >>945 コンパイルエラーやリンクエラー -> 動作しない 未定義動作 -> 動作する
978 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 13:22:50.11 ID:WVVp8u06d.net] 現実的な話としては、未定義動作静的解析で見つけ出してillーformed扱いしてコンパイル拒否するコンパイラがあったとして、それは規格違反ではない 当たり前だろ、だって未定義なんだから
979 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 13:23:40.85 ID:XYKyOOkrd.net] >>944 まず前方宣言がdeclarationという仕様のそとにある可能性を示してくれないと 前方宣言ってdeclarationの言語仕様外の動作してるの?
980 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 13:24:42.77 ID:WVVp8u06d.net] >>948 未定義動作の「動作」(undefined behaviourのbehaviour)は実行時動作だけ意味してるわけじゃない
981 名前:天災 mailto:sage [2022/12/27(火) 13:27:30.62 ID:QO3hLMTW0.net] >>950 俺も昨日から規格をあたってるけど見つからんのだよ Cの規格を見れば良いのかな?
982 名前:天災 [2022/12/27(火) 13:35:30.55 ID:QO3hLMTW0.net] >>951 初めて聞いたよ
983 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 13:35:53.60 ID:8Y7pY2Mbd.net] >>951 通らない部分は未定義動作のまま残して良いわけだけど コンパイルが通らないとなると問題だ
984 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 13:43:49.52 ID:WVVp8u06d.net] >>954 何が問題なの?何だろうと問題にしないのが未定義という事だぞ それ以上言うなら「未定義といえどもコンパイルとリンクは必ず通らなければならない」って規格書に書いてある場所提示してね
985 名前:天災 mailto:sage [2022/12/27(火) 13:44:55.47 ID:QO3hLMTW0.net] ソースがWikipediaで申し訳ないが 未定義動作とはコンパイルやリンクを通るものを言う https://ja.wikipedia.org/wiki/%E6%9C%AA%E5%AE%9A%E7%BE%A9%E5%8B%95%E4%BD%9C 名前空間stdにビルドできるコードを追加しても 動作が意図通りになるか分からんよ 動作は未定義だよってのが>>820 の指摘だよ
986 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 13:46:12.79 ID:8Y7pY2Mbd.net] 未定義じゃなくても「必ず通らなきゃならない」なんて記述はないと思うけど
987 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 13:56:51.44 ID:fnhKiHjQ0.net] >>956 ちがうんだよなぁ。 > CやC++の場合、コンパイラはコンパイル時に未定義動作のチェックを行うことができる よりC++規格に即した>921のリンク先も見てね。
988 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 13:57:29.46 ID:XYKyOOkrd.net] >>952 普通にdeclaration and definitionの項でも読んでれば良いんじゃないの 前方宣言特有の動作があるのにここにないなら別である可能性も考えて良い
989 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 13:59:01.95 ID:WVVp8u06d.net] >>956 ゴミ持って来んな しかもそのゴミにもコンパイル前にチェックしてもいい(しなくてもいい)って書いてあるやんけ >>957 コンパイル出来なかったら問題だとかいう寝言言い出したのはお前の方だろうが
990 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 13:59:36.79 ID:fnhKiHjQ0.net] >>957 あるよ。 https://timsong-cpp.github.io/cppwp/n4861/intro.compliance#2.1
991 名前:はちみつ餃子 mailto:sage [2022/12/27(火) 14:01:35.95 ID:G9AKlNLO0.net] >>956 仕様上の定義では未定義の挙動は翻訳中にも生じる。 > https://timsong-cpp.github.io/cppwp/n4861/defns.undefined > during translation or program execution
992 名前:天災 mailto:sage [2022/12/27(火) 14:23:44.32 ID:QO3hLMTW0.net] >>962 ホントだねw Wikipediaにあるようにコンパイルもリンクも通って 実行はできるときに使うことが多いと思ってたけども
993 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 14:42:36.98 ID:kLAEuBfs0.net] >>956 未定義動作はc++標準の規定外というだけで、エラーになるかどうかは全く関係無い。エラーにしてもエラーにしなくてもc++標準には違反しない。 www.open-std.org/jtc1/sc22/wg21/docs/standards N4849. 3.28 未定義の動作 この文書が要求していない動作 [項目への注記 1: 未定義の動作は,この文書が動作の明示的な定義を省略したとき,又はプログラムが誤った構成又は誤ったデータを使用したときに予想されるかもしれない。 未定義動作は,この文書が動作の明示的な定義を省略した場合又はプログラムが誤った構成若しくは誤ったデータを使用した場合に想定される。許容される未定義の動作 予測できない結果をもたらす状況の完全な無視から、翻訳中またはプログラム実行中に特徴的な文書化された方法で動作することまで、許容される未定義動作の範囲があります。 環境に応じて文書化された方法でプログラムの実行を行う(診断メッセージの発行の有無は問わない)。 また、翻訳や実行を終了する(診断メッセージを発行する)こともあります。) 多くの誤ったプログラム構成は、未定義の動作を発生させるものではなく、診断が必要なものである。 定数式の評価は、本書第 4 条から第 15 条で明示的に未定義と指定された動作にはならない。 から第15項(7.7)までに明示的に未定義と指定された動作を示すことはない。- エンディングノート]
994 名前:天災 mailto:sage [2022/12/27(火) 14:53:01.92 ID:QO3hLMTW0.net] >>964 有難う 用語は注意して使わないとね >>865 の質問を正確にすると 前方宣言を自分のソースに追加すると ビルドはできるが動作が未定義となる設計は本当にあるの? (もちろんstdは懸案事項なので保留するとしてそれ以外でね)
995 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 15:32:40.76 ID:XYKyOOkrd.net] stdだと未定義とするって仕様なのにstd保留してどうするんだ 未定義にならずにコンパイラが仕様通りの解釈して動作するだけだろ
996 名前:はちみつ餃子 mailto:sage [2022/12/27(火) 15:37:36.05 ID:G9AKlNLO0.net] 言語的には仕様通りの解釈をするがそれがそのライブラリにとって想定外であるような、 つまり本来の動作と異なる結果を引きおこすような形での前方宣言がありうるかという意味だろ。
997 名前:はちみつ餃子 mailto:sage [2022/12/27(火) 15:58:07.39 ID:G9AKlNLO0.net] それっぽい例を作れた! https://wandbox.org/permlink/6utNhLox1WhOaBV8 とはいっても適切な前方宣言になっていないから起こっていることではあるので、 「ヘッダを見て間違いなく前方宣言としては適切になるように書いたけど挙動には影響ある」という例にはなってない。
998 名前:天災 mailto:sage [2022/12/27(火) 16:01:30.79 ID:QO3hLMTW0.net] >>966 話が通じんなw その仕様を俺は疑っているから保留 正確に言うとdeclarationsに前方宣言は含まないかもしれんと思っている
999 名前:デフォルトの名無しさん (ワッチョイ 73f0-4Ar3) mailto:sage [2022/12/27(火) 19:17:57.55 ID:7IKxcRBS0.net] じゃ小学生の自由研究の時期が終わったら呼んでください
1000 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 20:34:13.81 ID:AOBUz6/T0.net] ボクちゃんの痛い自由研究 「stdネームスペースに落書き」
1001 名前:デフォルトの名無しさん [2022/12/27(火) 21:38:26.75 ID:Q5qxYeje0.net] じゃあ、ISOで未定義の時は、コンパイラの仕様を調べて使えば良いのでは?
1002 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 21:40:51.41 ID:FdHzEXmap.net] 移植とかでコンパイラ変わったら意図しない実行するとか平気ならな
1003 名前:天災 mailto:sage [2022/12/27(火) 22:06:21.35 ID:QO3hLMTW0.net] >>968 確かに前方宣言で挙動変わるね しかしこのトリッキーな例をもって 前方宣言を自分の管理外の名前空間(std以外でも)に 追加するのが危険と言って良いものかは正直悩む
1004 名前:天災 [2022/12/27(火) 22:15:15.29 ID:QO3hLMTW0.net] >>972 ,973 俺は絶対にstdはいじらないね
1005 名前:デフォルトの名無しさん [2022/12/27(火) 22:17:12.44 ID:Q5qxYeje0.net] じゃあ俺もそうする。
1006 名前:デフォルトの名無しさん [2022/12/27(火) 22:18:07.71 ID:xkGd3ITG0.net] 自作クラスでendlなどのマニピュレータをオーバーライドするにはstd名前空間に入れるしかないじゃない?
1007 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 22:19:58.45 ID:Kk7zAeAV0.net] つうかstdが「標準である」と言う設計上前方宣言を禁止したから仕様上未定義動作となっただけの話で 危険だから前方宣言すべきじゃないって話じゃないと思うよ 結果的にコンパイラ側がそれを逆手にとって最適化とか推し進めた形になったとしてもね 前方宣言許さない仕様のライブラリって言うのは危険だからじゃなく 勝手に拡張すること許さないと決めたライブラリであるというだけの話で
1008 名前:デフォルトの名無しさん [2022/12/27(火) 22:24:30.48 ID:Q5qxYeje0.net] >>977 ストリームはホント腹立つよな。 ぶっ飛ばしたくなってきた。 30年くらい怒りが収まらん。
1009 名前:天災 mailto:sage [2022/12/27(火) 22:55:56.41 ID:QO3hLMTW0.net] 随分と古参なんですね
1010 名前:デフォルトの名無しさん (ワッチョイ 95da-Axul) mailto:sage [2022/12/27(火) 23:15:16.94 ID:AOBUz6/T0.net] >>977 バカが設計したからなアレ
1011 名前:デフォルトの名無しさん (ワッチョイ 9fea-ij7E) mailto:sage [2022/12/27(火) 23:26:06.87 ID:VvvSD8wK0.net] ostream と istream の別の建てつけなので、ファイルポインタもこの二つのクラスで別なんだろうと思っていたら、土壇場で、実はファイルポインタは共有していましたぁ とか勘弁してほしいと痛切におもいましたねえ
1012 名前:デフォルトの名無しさん (ブーイモ MM21-5fcg) mailto:sage [2022/12/27(火) 23:28:14.07 ID:2qRZfHzrM.net] >>968 これ面白いな
1013 名前:天災 ◆41t0I.PYBW0z (ワッチョイ b101-jXNG) mailto:sage [2022/12/28(水) 00:50:07.21 ID:YU/L8pIp0.net] 無名namespaceで囲ってるとこが変態
1014 名前:デフォルトの名無しさん mailto:sage [2022/12/28(水) 08:09:55.49 ID:jVoOqLVQM.net] >>978 そういうのは「改造c++」とでも言うべきもので、個々の具体的な実装を挙げて話すべき話題。 具体的な実装の無い「改造c++」なんて「オレ言語」でしかないから、話題にしても相手にするヤツは居ないよ。興味無い。
1015 名前:デフォルトの名無しさん [2022/12/28(水) 16:02:37.97 ID:wx2BQ76Ga.net] >>981 まさかプロトタイプが30年後も使い続けてるとは思わなかったんだよ
1016 名前:はちみつ餃子 mailto:sage [2022/12/29(木) 22:47:04.14 ID:J2+EgPHK0.net] >>974 「わからない」という状態が最大のリスクだ。 精査して事情を把握してからやる分にはいいよ。 だけど少なくとも私はいちいちライブラリの細かいことなんて調べたくないし、 細部の事情まで読み解ける自信はないから製作者の意図 (仕様として明示されている範囲) を超える ような使い方をあえてすることはないだろうという話。 要するに割に合わない。 しなくていいことはせずに済ませられたらそのほうがいいだろ。 割に合うと考えている人がいたとしたら 「んなわけねーだろ。 お前が調べるのに労力をかけてないだけ」 と思うから安易にやっちゃうやつはちょっとナメてるように感じる。 そりゃあ他に打てる手がなければ割に合わなくてもやらざるを得ないことだってあるだろうけどさぁ。
1017 名前:デフォルトの名無しさん mailto:sage [2022/12/30(金) 07:37:06.73 ID:zn+Ud9N00.net] 本当に余計なお世話だけど、はちみつさんのような実力がある人は むしろライブラリやコンパイラのソースを読んだ方がいいよ
1018 名前:デフォルトの名無しさん mailto:sage [2022/12/30(金) 10:24:58.07 ID:O3GOnLRpa.net] >>988 おまえは仕事した方がいい
1019 名前:デフォルトの名無しさん mailto:sage [2022/12/30(金) 11:11:02.33 ID:l10vdbnHr.net] 火の玉ストレートやめたれ
1020 名前:デフォルトの名無しさん mailto:sage [2022/12/30(金) 13:31:38.92 ID:p0azBXIn0.net] std名前空間への勝手要素追加は未定義動作と書かれているのに std名前空間内のクラスへのメンバ追加についてはなんで言及が無いのやろうな…… 名前空間もクラスもPGの責任分担範囲の区切りみたいなもんで、 第三者に後から勝手に弄られたら設計したPGが困るのは同じだと思うのだけど、
1021 名前:デフォルトの名無しさん mailto:sage [2022/12/30(金) 13:33:22.64 ID:DPUEZfMS0.net] 後々の事考えて設計出来ない奴はPGに向いてない
1022 名前:デフォルトの名無しさん mailto:sage [2022/12/30(金) 14:02:10.34 ID:p0azBXIn0.net] 自分はできるPGですと自己申告する>>992 …… その自身がどこから来るのかは誰も知らない……
1023 名前:デフォルトの名無しさん mailto:sage [2022/12/30(金) 14:11:57.62 ID:DPUEZfMS0.net] そんなこと思ってない いままで見てきた汚いソース書いている連中の総意点を述べているだけのこと
1024 名前:デフォルトの名無しさん mailto:sage [2022/12/30(金) 14:28:22.93 ID:p0azBXIn0.net] つまりstd名前空間のソースは汚いから 予防のためにstd名前空間への勝手要素追加は未定義動作とするのがstdを設計したPGの立場では当然だと、
1025 名前:デフォルトの名無しさん mailto:sage [2022/12/30(金) 14:33:46.74 ID:DPUEZfMS0.net] バカなの? なんのための名前空間なのかよく考えろよ 設計を区分するためだろ そこにお前みたいなワケワケな奴が落書きしたらめちゃくちゃになるだろ
1026 名前:デフォルトの名無しさん mailto:sage [2022/12/30(金) 15:06:36.37 ID:uGEPy//I0.net] stackoverflow 辺りで 皆さんの御意見を聞いて来いよw
1027 名前:デフォルトの名無しさん [2022/12/30(金) 17:36:57.79 ID:oiKCiiXa0.net] 後のこと考えて設計するよりも先に手が動くような人じゃないとプログラミングは上達しないよ
1028 名前:デフォルトの名無しさん mailto:sage [2022/12/30(金) 17:55:02.39 ID:12nE7t5Ga.net] >>998 もうお前の尻拭いするの嫌だよ たのむから手動かす前に3分くらい考えてくれ
1029 名前:デフォルトの名無しさん mailto:sage [2022/12/30(金) 18:20:10.37 ID:2kXrfTwwd.net] 昔はさ、ウォーターフォールといって 完璧な設計ができるまでコードに手を出すな 設計が決まったら黙ってそれに従うコードを書け なんてのがあったけど 前例のないものの完璧な設計なんてほいっとできるのか 現場からのフィードバックを無視なんてできるのか って反省から今時の方法論ができているわけで ただし、それを悪用するだけの寄生虫を擁護はしない
1030 名前:1001 [Over 1000 Thread.net] このスレッドは1000を超えました。 新しいスレッドを立ててください。 life time: 60日 3時間 50分 35秒
1031 名前:過去ログ ★ [[過去ログ]] ■ このスレッドは過去ログ倉庫に格納されています