C++相談室 part157

レス数が1000を超えています。これ以上書き込みはできません。
2021/08/09(月) 10:57:31.60ID:JaaB5Egp
前スレ
C++相談室 part156
https://mevius.5ch.net/test/read.cgi/tech/1621389313/
2021/11/14(日) 12:57:01.80ID:hL5WeBkj
>>973
保持するときのエンコードは?
2021/11/14(日) 12:58:38.01ID:p964tW2k
>>974
文字コードの種類に1バイト用意して、後はそれぞれの文字コードで直接保存している
976デフォルトの名無しさん
垢版 |
2021/11/14(日) 13:30:12.63ID:mwYTHPjW
えー
コンストラクタで各種文字コードのバイト列を受け取れるようにして内部保持形式はUTF32でよくない?
2021/11/14(日) 13:42:53.43ID:p964tW2k
それだと大きめのテキストファイルを開いたときなどいちいち変換が入って遅くなりそうだから…といっても実際にはどっちが効率良いのかまでは比べてないけど
異なる文字コード同士比較する時なんかはコードポイント単位で読み出して結局utf32ベースで処理するしな…
978デフォルトの名無しさん
垢版 |
2021/11/14(日) 13:44:30.36ID:E00roTgy
>dstのサイズはsrcのサイズの2倍を越えない

しね
2021/11/14(日) 13:59:19.66ID:5aeLrxCA
プログラマーは3種類しかいない
文字コードが分からない一般プログラマー
文字コードを理解したと勘違いしている地雷プログラマー
そして人類が文字コードを理解するのは不可能だと悟った上でなんとか事故が起こらないように心を砕く真の専門家だ
2021/11/14(日) 14:17:19.40ID:p964tW2k
>>976
あーあとは、これのstring_viewバージョンがあって、関数のパラメータをconst mystring_view& strみたいに受けると、どんな対応してる文字なら(リテラルや対応してるクラス含めて)なんでも参照として受け付けるから便利なんだよね
2021/11/14(日) 14:59:21.42ID:WpZMPVn+
それconst&いるんか?
2021/11/14(日) 15:13:11.67ID:p964tW2k
実質的にはほとんどなにも変わらないと思うけど、無駄なコピーが減る場合もあるので付けておくに越したことはないと思う
2021/11/14(日) 15:45:24.64ID:p964tW2k
まぁ、でも参照もコストゼロってわけじゃないから、場合によっては遅くなることもあるか…
2021/11/14(日) 16:54:05.80ID:tkHjD9h1
const って伝播するから嫌い
付けるのは反対ではないが
2021/11/14(日) 17:26:15.73ID:CXUBNW9m
伝播ってどういうこと?
2021/11/14(日) 17:38:21.62ID:A4GQ1/1N
参照で受け取るときには const を付けないと右辺値を受け取れないんだよ。

&& にしたら逆に右辺値しか受け取れないし、
テンプレートにするのも面倒くさいし、
const 参照で不都合がないならまずそれを選ぶのが常道になってる。

積極的にそうする必要はなくても手癖でやるよね。
2021/11/14(日) 17:44:17.95ID:A4GQ1/1N
>>985
const 無しから const 付きの参照へは暗黙の型変換が許されるがその逆はない。
const 付きにしたらそれがずっと伝わっていくってことだ。

元のオブジェクトが const でないなら const_cast で const を剥がして書き換えるのは一応は有りなはずだが、
かなり行儀が悪いしな。
2021/11/14(日) 17:59:13.06ID:CXUBNW9m
スコープ限定のconstを欲するひとがいるとは思わんかった
989デフォルトの名無しさん
垢版 |
2021/11/14(日) 18:02:00.71ID:nLCz7RQY
責任ベースのconstは有り得るのでは?
privateが在るんだから。
2021/11/14(日) 18:05:38.66ID:leu9kbhs
というか伝播しなかったら困るのでは?
お行儀悪くconst_castしない前提なら
ある関数の引数がconstだったら、その関数が呼び出す関数もまたconstであるという保証は大切だろうし
991デフォルトの名無しさん
垢版 |
2021/11/14(日) 18:45:07.42ID:nLCz7RQY
もちろんそれは大切ですよ。
伝搬しなかったら意味ないし。
2021/11/14(日) 19:45:46.13ID:5CSGBVhH
K&R2 にも const はありますが全然使わなかったなあ…volatile 同様キワモノだとおもっていました(爆)
2021/11/14(日) 22:33:34.47ID:oUoND4t/
C++20からコルーチン入るけどコルーチンの返り値に関数内の変数の参照返すの問題になるかな?

hoge& test(){
hoge tmp;
for(int i=0;i<10;++i){
co_yield tmp;
}
}

//返り値は実際はgeneratorとかになるかもしれない
2021/11/14(日) 22:35:39.21ID:PetPaRNq
yeild使えるようになるのか
2021/11/15(月) 01:03:02.10ID:tPLK0GqY
viewは値渡しが基本だよ
2021/11/15(月) 06:05:50.61ID:Rt8JG1Np
何かのリミッタが外れた感じだね
無差別にぶち込むようになった
2021/11/15(月) 06:11:48.42ID:Rt8JG1Np
江添が逃げた理由も察しがつく
2021/11/15(月) 15:55:33.66ID:Ux5WoKB6
更新してないよね
2021/11/15(月) 16:41:30.12ID:i/3H6iLT
hage
2021/11/15(月) 16:42:03.92ID:i/3H6iLT
10^3
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 98日 5時間 44分 33秒
レス数が1000を超えています。これ以上書き込みはできません。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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