アカウント名:
パスワード:
いきなりわけわからん Tweet [twitter.com]が飛び出してきてびびった。だったらどうしてC++のキャストは、static_cast、dynamic_cast、reinterpret_castそしてconstを外すだけのconst_castに分けられたんだ?C形式のキャストだと何の為のキャストなのか見分けがつかないからだろ?
そしてconstをconst &にするconst_castなんて、かのBoostですら当たり前のように使われてる。違法でも何でもない。テメーの中のマイルールを勝手に世間一般の常識にみたいに語るなよ。
$ grep '#define BOOST_VERSION '
そのTweetはC++でなくてCだからね。JISのC (C99相当)を読んでみたけど、修飾版へ変換してよいとは書いてあるけど、逆は書いてないみたいだった。C++は外せるけど。
const&についてだけど、C++11で確認したところ、constオブジェクトの領域は確保する必要がないと書いてある。ただし参照されたときはそのように振る舞う必要がある。
言語仕様を語る人は多いけど、規格票を確認する人は少ないみたい。しかしJISもいいかげん改定してくれないかね。
C++ だと外せるんだ?https://godbolt.org/z/YagQXH [godbolt.org]https://godbolt.org/z/9pJHBg [godbolt.org]
const修飾は外せるよ。理解しにくい文章だったかなあ?
constオブジェクトの領域うんぬんは誤読だったかもしれん。まあ、自分で規格を読んでみて。
そのJISの記載ってキャスト無しでの代入時などに起きる暗黙変換の奴では……ほかはポインタを数値型として見た場合に元の形に戻せば同値にしろとか、最終的な参照時に実体にR/W出来なきゃ未定義みたいな話してるだけでは。
つかそういうキャスト自体が未定義動作なら、void*から変換する奴とかどうすんだよ。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
クラックを法規制強化で止められると思ってる奴は頭がおかしい -- あるアレゲ人
(Cの)const外しキャストは従来から違法だった? (スコア:0)
いきなりわけわからん Tweet [twitter.com]が飛び出してきてびびった。
だったらどうしてC++のキャストは、static_cast、dynamic_cast、reinterpret_cast
そしてconstを外すだけのconst_castに分けられたんだ?
C形式のキャストだと何の為のキャストなのか見分けがつかないからだろ?
そしてconstをconst &にするconst_castなんて、かのBoostですら当たり前のように使われてる。違法でも何でもない。
テメーの中のマイルールを勝手に世間一般の常識にみたいに語るなよ。
Re:(Cの)const外しキャストは従来から違法だった? (スコア:1)
そのTweetはC++でなくてCだからね。
JISのC (C99相当)を読んでみたけど、修飾版へ変換してよいとは書いてあるけど、
逆は書いてないみたいだった。
C++は外せるけど。
const&についてだけど、C++11で確認したところ、constオブジェクトの領域は
確保する必要がないと書いてある。ただし参照されたときはそのように振る舞う
必要がある。
言語仕様を語る人は多いけど、規格票を確認する人は少ないみたい。
しかしJISもいいかげん改定してくれないかね。
Re: (スコア:0)
そのTweetはC++でなくてCだからね。
JISのC (C99相当)を読んでみたけど、修飾版へ変換してよいとは書いてあるけど、
逆は書いてないみたいだった。
C++は外せるけど。
C++ だと外せるんだ?
https://godbolt.org/z/YagQXH [godbolt.org]
https://godbolt.org/z/9pJHBg [godbolt.org]
Re: (スコア:0)
const修飾は外せるよ。
理解しにくい文章だったかなあ?
constオブジェクトの領域うんぬんは誤読だったかもしれん。
まあ、自分で規格を読んでみて。
Re: (スコア:0)
そのJISの記載ってキャスト無しでの代入時などに起きる暗黙変換の奴では……
ほかはポインタを数値型として見た場合に元の形に戻せば同値にしろとか、
最終的な参照時に実体にR/W出来なきゃ未定義みたいな話してるだけでは。
つかそういうキャスト自体が未定義動作なら、
void*から変換する奴とかどうすんだよ。