[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 02/27 11:38 / Filesize : 256 KB / Number-of Response : 1020
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C++相談室 part154



1 名前:デフォルトの名無しさん mailto:sage [2021/01/08(金) 17:54:00.55 ID:0DW9z0rL.net]
※前スレ
C++相談室 part153
https://mevius.5ch.net/test/read.cgi/tech/1602339500/

テンプレここまで

477 名前:デフォルトの名無しさん [2021/02/03(水) 13:02:19.58 ID:53EFMpkm.net]
ビットシフト記述は自然すぎてソースコードに埋もれてしまう。
64ビットマスクのAND記述は見た目がどぎついので、かえって人間の注意を引くことができる。

478 名前:デフォルトの名無しさん mailto:sage [2021/02/03(水) 14:45:43.48 ID:J722wycU.net]
なにいってんだこいつ

479 名前:デフォルトの名無しさん mailto:sage [2021/02/03(水) 15:50:32.48 ID:pE1foWCw.net]
>>465
やっぱり、32BITの時が一番プログラミングし易かったな。
64BITになると、64BITと32BITを区別して書く必要が出てきて、
書くのが面倒になった。

480 名前:デフォルトの名無しさん mailto:sage [2021/02/03(水) 19:12:23.88 ID:XaYGR0Wv.net]
そう?ポインタサイズくらいしか違いなくない?

481 名前:デフォルトの名無しさん [2021/02/03(水) 21:29:02.90 ID:53EFMpkm.net]
まじめにC/C++標準型size_tを使っている人には32bitと64bitの処理切り分けが地味に辛い。

482 名前:デフォルトの名無しさん mailto:sage [2021/02/03(水) 22:36:28.54 ID:y3dS6mbz.net]
>>465の下の方のやつは符号拡張されたりする気がするorz

483 名前:デフォルトの名無しさん mailto:sage [2021/02/03(水) 22:40:25.83 ID:Ea4RwHR/.net]
>>424
> obj& operator [] (int i) {return elem[i];}
> もちろんelem[]の定義はobj elem[];

objは行列クラスで、elemはobjのメンバで行列要素を格納する一次元配列、で合ってますよね?
class obj{
 array<int, ?> elem;
public:
 obj& operator [] (int i) {return elem[i];}
};
ということですか?

484 名前:デフォルトの名無しさん mailto:sage [2021/02/04(木) 03:22:45.38 ID:R0EDVzG0.net]
>>473
size_t は、型名が長いし _ も含んでいるし、打つのが辛い。
それにコードに締める長さも長くなるので画面が狭くなるし。

485 名前:デフォルトの名無しさん mailto:sage [2021/02/04(木) 04:17:06.60 ID:SkZt7jTc.net]
>>473
まじめに、て別にsize_t使ってたら偉いわけじゃない
サイズを表したいけどいちいち考えたくない場合の選択肢だぞ



486 名前:デフォルトの名無しさん mailto:sage [2021/02/04(木) 11:32:06.33 ID:sIhIIpMX.net]
size_t型はSTLを使う人なら避けて通れない。

487 名前:デフォルトの名無しさん [2021/02/04(木) 11:40:48.70 ID:ZzRKCYY/.net]
>>471

488 名前:
それ本来そこにあった問題に気付いていないだけだったと思うぞ
[]
[ここ壊れてます]

489 名前:デフォルトの名無しさん [2021/02/04(木) 11:44:02.03 ID:ZzRKCYY/.net]
>>475
class obj{
 array<obj, ?> elem;
public:
 obj& operator [] (int i) {return elem[i];}
};

490 名前:デフォルトの名無しさん mailto:sage [2021/02/04(木) 12:06:17.02 ID:DWE1XJjK.net]
>>480
それってarrayのarrayとかvectorのvectorとか配列の配列として行列を作るのと同じですよね?
一次元配列に要素を格納しておいて[][]でアクセスするのは不可能なんでしょうか
row majorやcolumn majorを自由にできる、等の理由でそちらの方が好ましいのですが

491 名前:デフォルトの名無しさん mailto:sage [2021/02/04(木) 12:29:12.61 ID:waKgX41w.net]
一次元配列を内包しているクラスのoperator[](int y)が、下記のようなクラスを返すようにすればできる。

class Row {
vector<int>& 一次元配列への参照
int 列数
int y
int& operator[](int x){ return 一次元配列への参照[列数*y+x]; }
};


でも自分ならoperator[]は使わずもとのクラスにindex(x, y)みたいな関数を用意して対処すると思う。

492 名前:デフォルトの名無しさん mailto:sage [2021/02/04(木) 13:10:42.29 ID:g2cSm/y9.net]
malloc とか new で確保したメモリ領域を使うように
vector ( または array ) をインスタンス化するにはどうすればよいですか?

493 名前:はちみつ餃子 mailto:sage [2021/02/04(木) 13:13:43.37 ID:ttCVH4wp.net]
>>481
こういう雰囲気で他のクラスをひとつ間に入れることでなんとかなる。

https://wandbox.org/permlink/ZXI1nkkCLRJQPtAJ

だけど俺も >>482 の言う通り operator[] にこだわらずに適当なメンバ関数でやる方法を推すわ。
実態として二引数なのだし、記法のためだけに余計な定義をするの馬鹿らしいと思う。

提案としては hoge[i, j] みたいな感じで二引数のインデックスを受け取れるようにする案は出てるんだが、
現状ではこのときのカンマは普通にカンマ演算子として解釈される。
前準備として、 C++20 からはブラケット内でのカンマは非推奨にするという変更が入っている。
https://timsong-cpp.github.io/cppwp/n4861/depr.comma.subscript

494 名前:はちみつ餃子 mailto:sage [2021/02/04(木) 13:20:29.03 ID:ttCVH4wp.net]
>>483
ある時点で確保済みのメモリの上にオブジェクトを構築するには
std::uninitialized_default_construct を使う。

でも std::vector 自体を適当なメモリの上に構築できても
std::vector 内で使うメモリは std::allocator で確保しようとするから、
必要ならアロケータを定義する必要がある。

495 名前:デフォルトの名無しさん mailto:sage [2021/02/04(木) 15:40:11.75 ID:R0EDVzG0.net]
>>479
いや、全て32BITは、それに全て統一することで速度とメモリ効率と実用性の
バランスが取れていた。
ところが64BITだと実用上、表せる値の範囲はオーバースペックで
変数のメモリに占めるバイト数が8バイトと余りにも効率が悪い。
なので、多くの数値は32BITとし、必要な部分だけ64BITにするという
面倒な選択を強いられる様になった。
アドレスが64BITなので、それを整数型に入れるためには32BITの整数では
不足するので引きつられて整数も64BITを必要としがちになり、大混乱
が生じている。
(また、メモリーもアドレスを32BITより多くを必要とするアプリは非常に稀。)



496 名前:デフォルトの名無しさん mailto:sage [2021/02/04(木) 16:48:02.49 ID:DWE1XJjK.net]
>>482
ありがとうございます
ストラウストラップの「プログラミング言語C++」に「行列クラスの設計」なるセクションがあったのを覚えてるので、そちらではどうしていたかも見てみます

497 名前:デフォルトの名無しさん mailto:sage [2021/02/04(木) 17:07:22.68 ID:dB2jWvbu.net]
unique_ptr<Hoge[]> p(new Hoge[4]{a, b, c, d});
みたいな定義と同時に代入は出来るのですが
(各要素毎に Hoge(a), Hoge(b), Hoge(c), Hoge(d) になりました)

unique_ptr<Hoge[]> p = make_unique<Hoge[]>(4);
だと引数無しのデフォルトコンストラクタが無いといけないし
(そもそも引数無しのデフォルトコンストラクタ作りたくない)

unique_ptr<Hoge[]> p = make_unique<Hoge[]>({a, b, c, d});
とか
unique_ptr<Hoge[]> p = make_unique<Hoge[]>(4){a, b, c, d};
とかはコンパイル出来ませんでした

引数無しのデフォルトコンストラクタがあれば
unique_ptr<Hoge[]> p = make_unique<Hoge[]>(4);
p.reset(new Hoge[4]{a, b, c, d});
だとうまく逝きますが効率が悪い気がします
make_unique は使ってはいけないのでしょうか?

498 名前:デフォルトの名無しさん mailto:sage [2021/02/04(木) 17:51:26.68 ID:b9gCdorg.net]
>>487
485も見てねー

499 名前:デフォルトの名無しさん mailto:sage [2021/02/04(木) 17:52:07.72 ID:b9gCdorg.net]
まちがえた。484

500 名前:デフォルトの名無しさん mailto:sage [2021/02/04(木) 20:56:33.92 ID:ZyzsEROR.net]
配列のunique_ptrは色々と中途半端で使いづらいからオススメしない

501 名前:デフォルトの名無しさん mailto:sage [2021/02/04(木) 22:14:32.91 ID:b9gCdorg.net]
>>488
unique_ptr<Hoge[]> p;
p.reset(new Hoge[4]{a, b, c, d});
でよいのでは?

502 名前:デフォルトの名無しさん mailto:sage [2021/02/04(木) 22:20:26.07 ID:un3OWVjy.net]
>>486
32bitアプリでも今どきなら64bit整数を使える処理系は多いだろ
そもそもアドレスを整数型に入れるっていつの時代の人よw

503 名前:デフォルトの名無しさん mailto:sage [2021/02/04(木) 22:47:34.63 ID:/RiZUiBF.net]
>>493
アドレスを整数に入れるのは過去の話じゃないぞ

504 名前:デフォルトの名無しさん mailto:sage [2021/02/04(木) 22:51:09.67 ID:sIhIIpMX.net]
intptr_t整数型を使ってたのっていつの時代?

505 名前:デフォルトの名無しさん mailto:sage [2021/02/04(木) 23:24:48.23 ID:hMfhfQWp.net]
uintptr_tならいつもお世話になっております



506 名前:デフォルトの名無しさん mailto:sage [2021/02/05(金) 00:01:41.63 ID:NIkVqohR.net]
この手合いのボケを量産するのはC++の害だな

507 名前:デフォルトの名無しさん mailto:sage [2021/02/05(金) 01:35:15.82 ID:EB7VAtvO.net]
むしろCの害

508 名前:デフォルトの名無しさん mailto:sage [2021/02/05(金) 01:52:47.05 ID:xbM9VFWh.net]
Rubyって結局勉強しないままPythonの時代になってしまったな

509 名前:デフォルトの名無しさん mailto:sage [2021/02/05(金) 04:42:48.12 ID:ZuGfyZDY.net]
同様にC++を勉強しないままRustの時代になる

510 名前:デフォルトの名無しさん [2021/02/05(金) 09:51:39.70 ID:U76qOqQA.net]
>>488
https://www.it-swarm.jp.net/ja/c%2B%2B/new演算子よりもstd-makeuniqueを使用する利点/826350881/amp/
https://ja.stackoverflow.com/questions/24876/make-uniqueの利点

511 名前:デフォルトの名無しさん mailto:sage [2021/02/05(金) 13:28:24.98 ID:ou/gU5gH.net]
c++やらずにrustとか馬鹿量産するだけにしか思えんな。

512 名前:デフォルトの名無しさん mailto:sage [2021/02/05(金) 14:10:32.07 ID:Xzu/prlh.net]
それ言ったらノーコードがどうたら言ってる奴らはもっとやばそう

513 名前:デフォルトの名無しさん mailto:sage [2021/02/05(金) 14:17:08.86 ID:M7C1cdPI.net]
ノーコードていってノードツリーみたいなのでフロー管理するやつ
よくゲーム系ツールにありがちだけど、サンプルみたいな単純な処理ならともかく
こみいったフローになってくるとノード間の接続線がものすごいことになって
とても管理しようという気になれない、まさに見た目どおりのスパゲティプログラムに

514 名前:デフォルトの名無しさん mailto:sage [2021/02/05(金) 14:18:44.73 ID:ou/gU5gH.net]
>>503
それはもう50年くらいずっとそうだろ。
ノーコードとか逆に俺様言語作ってるのとほぼ変わらん状態にしかならんという
しょーもない展開しか見たことない。

515 名前:デフォルトの名無しさん [2021/02/05(金) 15:14:07.00 ID:zImWQG8r.net]
VCPKGのupdate、upgradeが常に失敗するんだけど、使えてる人いますか?
小まめにupdateしないからだろか?



516 名前:デフォルトの名無しさん [2021/02/05(金) 15:14:37.91 ID:zImWQG8r.net]
Goは標準ライブラリが圧倒してる。

517 名前:デフォルトの名無しさん [2021/02/05(金) 15:18:44.78 ID:zImWQG8r.net]
半年に一度フルビルドみたいになってしまう。

518 名前:デフォルトの名無しさん mailto:sage [2021/02/05(金) 16:12:02.35 ID:A9cGRDK5.net]
Goは何がクソといってまず名前がクソ

519 名前:デフォルトの名無しさん [2021/02/05(金) 16:36:26.85 ID:zImWQG8r.net]
C++は基本だから、義務教育で習得するべき。

520 名前:デフォルトの名無しさん mailto:sage [2021/02/05(金) 16:50:43.11 ID:/MNAnFTn.net]
言語仕様がでかすぎるからC言語で精一杯
オマケで紹介される程度かな

521 名前:デフォルトの名無しさん mailto:sage [2021/02/05(金) 18:21:14.28 ID:7P5D6x+s.net]
>>505
昔はアセンブラすら触れない奴がC言語とか笑わせるなとか真顔で言う人がいたんだぜ。

別に仕事ができるのならRustでもPythonでも何でもいいと思うぞ。

522 名前:デフォルトの名無しさん mailto:sage [2021/02/05(金) 19:09:46.26 ID:AjJLCZml.net]
仕事ができるのならw

523 名前:デフォルトの名無しさん mailto:sage [2021/02/05(金) 20:48:06.29 ID:ou/gU5gH.net]
>>512
仕事ができるならなw
できないカスがクソみたいなもん押し付けてくるから文句が出るんだよ。
rustでもpythonでもまともなコード書いてりゃ文句はないわ。
まともじゃないから文句が出る。

524 名前:デフォルトの名無しさん [2021/02/05(金) 21:49:13.85 ID:a81hUa+F.net]
というか、プログラマとしてrust(鉄さび、腐食)になるというダブルミーニングを狙ったんだと思うけど。

525 名前:デフォルトの名無しさん mailto:sage [2021/02/05(金) 21:59:53.11 ID:kFtfKVND.net]
お前らってド素人のくせになんでいっちょまえの口利くん?
それって不思議だわ



526 名前:デフォルトの名無しさん mailto:sage [2021/02/05(金) 22:34:33.49 ID:EB7VAtvO.net]
Rustの名前は金属の錆じゃなくてサビ菌が由来

527 名前:デフォルトの名無しさん mailto:sage [2021/02/05(金) 22:36:07.20 ID:NIkVqohR.net]
Rottenでいい

528 名前:デフォルトの名無しさん mailto:sage [2021/02/05(金) 22:48:47.57 ID:a81hUa+F.net]
Perl6はRakuになってしまったし、Rustもいずれ「わびさび」の境地でSabiに改名されるでしょ。

529 名前:デフォルトの名無しさん mailto:sage [2021/02/06(土) 03:04:22.39 ID:kQVOjfvp.net]
「まともなコードが書けるなら」じゃなくて、まともなコードを強制するのがRustという言語の方針だと思うが

530 名前:デフォルトの名無しさん mailto:sage [2021/02/06(土) 04:45:05.79 ID:oQfB5lBJ.net]
>>284
昔からのプログラミング/電気界隈の慣習だから仕方ないけど、2要素のミニマルなブール代数しか扱わないにも関わらずboolean型を称するのがそもそもキモい
プログラミングで使うような半順序関係は、9割booleanで書くのが一番スッキリする
一般のbool型をプリミティブにして、そこからt/fやら三要素やらに派生するのが合理的に思う

531 名前:デフォルトの名無しさん [2021/02/06(土) 04:50:47.70 ID:GfZyzG1j.net]
ブーリアン革命。

532 名前:デフォルトの名無しさん mailto:sage [2021/02/06(土) 05:13:59.88 ID:oQfB5lBJ.net]
革命というか、クラスシステムでブール代数をエミュレートしてるのが現状のOOPじゃないかと
まあ言語によって可補性はマチマチだけど、全てについてスーパークラス/サブクラスなクラスを設けるのは、メインストリームの言語では大体そうだろ

533 名前:デフォルトの名無しさん mailto:sage [2021/02/06(土) 07:27:56.30 ID:S9Y30hRK.net]
>>520
だとしたら胡散臭さ200%のカルトだな

534 名前:デフォルトの名無しさん mailto:sage [2021/02/06(土) 09:31:12.13 ID:rZdEmaWa.net]
>>524
Java、Kotlin、Scala、C#、Ruby、Python、PHP
あたりのどれかを触ってみれば、危険な記述を言語仕様レベルで封印することのありがたさが分かる

他言語も触ってみることをオススメする

535 名前:デフォルトの名無しさん mailto:sage [2021/02/06(土) 09:34:34.84 ID:5Ze23T9D.net]
よくわからんが安全カミソリみたいなものかね?



536 名前:デフォルトの名無しさん mailto:sage [2021/02/06(土) 10:10:31.61 ID:rZdEmaWa.net]
>>526
そんな感じ

まぁ、C++もマスターすれば危険な記述を避けることはできるんだけど...
プログラマーが悪意を持ってプログラムを記述しない限り安全なコードになるようにしようという試みは大切だと思う

537 名前:デフォルトの名無しさん mailto:sage [2021/02/06(土) 10:11:15.51 ID:S9Y30hRK.net]
>>525
ありがとう、おまえさんのレベルの低さがよくわかった
文法や動作がよくわかってなくてマシンに警告してもらわなきゃ自分では判断できないんだな
アプリの内容

538 名前:として良からぬ事を企むという次元には程遠いわけか []
[ここ壊れてます]

539 名前:デフォルトの名無しさん mailto:sage [2021/02/06(土) 10:12:54.42 ID:rZdEmaWa.net]
>>528
投稿した瞬間の不意打ちレスワロス

540 名前:デフォルトの名無しさん mailto:sage [2021/02/06(土) 10:17:55.71 ID:u/OM7jGY.net]
>>527
> プログラマーが悪vログラマーが悪意を持ってプログラムを記述しない限り安全なコードになるようにしようという試みは大切だと思う

>>528
> 文法や動作がよくわかってなくてマシンに警告してもらわなきゃ自分では判断できないんだな

この流れは大草原不可避

541 名前:デフォルトの名無しさん [2021/02/06(土) 11:01:19.43 ID:PohEB++t.net]
>>504
Unity とか UE はきらい?

542 名前:デフォルトの名無しさん [2021/02/06(土) 11:07:09.44 ID:PohEB++t.net]
>>509
めっちゃわかります
https://blog.golang.org/gopher
write.kogus.org/articles/S78LHt

543 名前:デフォルトの名無しさん mailto:sage [2021/02/06(土) 11:09:03.81 ID:gLiOOG5V.net]
rustの縛りプレイはマルチスレッドでのメモリ管理のクソ面倒さが原因だろう

544 名前:デフォルトの名無しさん mailto:sage [2021/02/06(土) 12:19:39.89 ID:S9Y30hRK.net]
>>527
いーや、くだらねえ
プログラマを信頼しない方針はあれもダメこれもダメの制限だらけになるだけだ
おまえさん自身も実社会で職場の誰よりも制限だらけなんだろう
重責を担ったことのないやつは人のせいにすることしか考えねえ

545 名前:デフォルトの名無しさん mailto:sage [2021/02/06(土) 12:25:16.36 ID:UXUwo66G.net]
それだけ無責任で信頼出来ない人間が多いって事だろ



546 名前:デフォルトの名無しさん mailto:sage [2021/02/06(土) 12:31:39.86 ID:58EQLFGq.net]
信頼はタダではないからな
バグを流出させたら銃殺ぐらいが妥当

547 名前:デフォルトの名無しさん mailto:sage [2021/02/06(土) 12:53:16.04 ID:DutNpJ49.net]
>>528
お前のレベルが極めて高いのは分かったが、お前の共同の開発者もお前のようにハイレベルだとは限らない

548 名前:デフォルトの名無しさん mailto:sage [2021/02/06(土) 13:19:02.89 ID:Hu1Z4B3S.net]
>>534
負け犬の遠吠え

549 名前:デフォルトの名無しさん mailto:sage [2021/02/06(土) 13:29:55.66 ID:EjDQT0l8.net]
>>460
「(type)~0」でどう?

550 名前:デフォルトの名無しさん mailto:sage [2021/02/06(土) 13:32:30.22 ID:TGsCRbLO.net]
>>536
ハゲを流出させたら〜と空目した

551 名前:デフォルトの名無しさん mailto:sage [2021/02/06(土) 13:33:33.54 ID:rZdEmaWa.net]
>>538
しー!余計なことを言うんじゃないっ!

552 名前:デフォルトの名無しさん mailto:sage [2021/02/06(土) 13:38:49.17 ID:Hu1Z4B3S.net]
>>528はスマートポインタを知らなさそう
文章から溢れ出る無能感

553 名前:デフォルトの名無しさん mailto:sage [2021/02/06(土) 13:44:48.20 ID:S9Y30hRK.net]
構ってちゃんは、スマポ憶えたてらしいなw

554 名前:デフォルトの名無しさん mailto:sage [2021/02/06(土) 13:46:38.15 ID:gYQHLnIz.net]
天才の俺が書くプログラムは絶対正しいから無駄なバカよけ機能はいらないしテストのような下等なことはしない
って豪語してたいつぞやの天才くんが帰ってきたのかな

555 名前: mailto:sage [2021/02/06(土) 13:50:19.96 ID:kbrcRlAn.net]
>>544
私は馬鹿なので天才のコードというのがどんなのか凄く興味があります…



556 名前:デフォルトの名無しさん mailto:sage [2021/02/06(土) 13:53:43.56 ID:ROiZJzWf.net]
コテハンでこの程度の文章も読めないのは

557 名前: mailto:sage [2021/02/06(土) 13:55:54.96 ID:kbrcRlAn.net]
>>546
そりゃ馬鹿だからでしょう…

558 名前:デフォルトの名無しさん mailto:sage [2021/02/06(土) 13:59:04.79 ID:aJ9IYVGP.net]
どう考えても誰かさんに対する皮肉なんだよなぁ...
まぁ、荒れるから誰とは言わないけど

559 名前:デフォルトの名無しさん mailto:sage [2021/02/06(土) 14:05:03.59 ID:fN0CSTPN.net]
傲慢かましすぎもへりくだりすぎも良くない

560 名前:デフォルトの名無しさん mailto:sage [2021/02/06(土) 14:06:38.65 ID:zTEH7215.net]
>>548
すでに荒れる種をまいてるきみが一番有害

561 名前:デフォルトの名無しさん mailto:sage [2021/02/06(土) 14:12:51.02 ID:aJ9IYVGP.net]
>>550
いや、俺は別にS9Y30hRKは天才だと思ってるぞ!誰もS9Y30hRKの事をゲロカス老害だとか、バグを減らす上での有害な存在だとか、人を見下すだけの無能だとか、自分にとって都合のいい妄想を口に出す病人だとか、構ってちゃんだとか、そんなこと全

562 名前:R思っていないから!!S9Y30hRKは天才!!疑う余地もなく天才!!ハイレベルなバカで誰もついていけないとか、そんなこと思っていないから!!!
だから!それ以上この話はやめろぉおおおお!!!
[]
[ここ壊れてます]

563 名前:デフォルトの名無しさん mailto:sage [2021/02/06(土) 14:21:36.41 ID:rZdEmaWa.net]
>>545
馬鹿でも扱えるくらい綺麗なコードが天才のコードだと思う
C++は表現豊かな言語だから...他の言語も触ると、綺麗な記述方法を学ぶ良い機会になるよ

564 名前:デフォルトの名無しさん mailto:sage [2021/02/06(土) 14:56:25.58 ID:58EQLFGq.net]
>>552が扱えるかどうかが天才か否かの基準か!

565 名前:デフォルトの名無しさん mailto:sage [2021/02/06(土) 15:01:56.11 ID:S9Y30hRK.net]
綺麗かどうかじゃない
何を実現したのかだ
綺麗に書くのはエチケットだが一番大事なことではない



566 名前:デフォルトの名無しさん mailto:sage [2021/02/06(土) 15:11:21.64 ID:f5ipo2xA.net]
>>553
銃殺は銃刀法違反及び殺人罪に接触することすら理解できないお前でも分かるコードが存在したら私はそのコードを書いた天才を尊敬する

567 名前:デフォルトの名無しさん mailto:sage [2021/02/06(土) 15:21:29.14 ID:58EQLFGq.net]
行政が法律に基づき行うなら問題無い
人が作った法律なら人が改正することができる

568 名前:デフォルトの名無しさん mailto:sage [2021/02/06(土) 15:22:17.24 ID:S9Y30hRK.net]
スレ違い板違い失せろ

569 名前:デフォルトの名無しさん mailto:sage [2021/02/06(土) 15:28:25.66 ID:58EQLFGq.net]
>>557
>>555に対するレス

570 名前:デフォルトの名無しさん mailto:sage [2021/02/06(土) 15:30:29.13 ID:f5ipo2xA.net]
自作自演?

571 名前:デフォルトの名無しさん mailto:sage [2021/02/06(土) 16:36:26.06 ID:oR/8CbQ7.net]
やらかしちゃいましたねー
人を見下しておきながら、人を見下す側もウッカリミスはするという事が証明されました

こういうウッカリ屋はプログラミングでも不具合を引き起こします
馬鹿でも天才でもウッカリ屋でも保守できるコードは記述するように心がけましょう

572 名前:デフォルトの名無しさん mailto:sage [2021/02/06(土) 16:38:50.88 ID:oR/8CbQ7.net]
>>560
他にもテストの自動化、バージョン管理ツールの導入等もして不具合が流出しない仕組みを揃えておきましょう
以上

573 名前:デフォルトの名無しさん mailto:sage [2021/02/06(土) 16:54:20.22 ID:bwIKlxQ8.net]
std::stringにUTF-8のコードを入れてプログラムを書いていますが、これを正しく編集する
にはUTF-8での文字の境界を正しく認識しないと駄目ですよね?
それは一般的にはどう処理するものなのでしょうか。

UTF-8のビットパターンとバイト数のことは知っていますが、それを自分で処理すべきか、
さらには絵文字とか複数のユニコードが組み合わさったものはどうするのか、とか。

574 名前:はちみつ餃子 mailto:sage [2021/02/06(土) 17:05:10.96 ID:N9CbrPsc.net]
>>562
コードポイント単位での処理で良いのであれば自分で適当に書いてしまってもいいと思う。

高度なものになると ICU などのライブラリを使う。
書記素クラスタ単位での処理が必要だったり正規化だったりといった場合では
コードを書けば済むというものでもなくて巨大な表が必要だし歴史的な変な規則が盛りだくさんだから
よほどの根性がないと自分ではどうにもならないと思う。

575 名前:蟻人間 mailto:sage [2021/02/06(土) 17:07:58.83 ID:gG6zzvvp.net]
>>562 Windowsだったら
#include <windows.h>
MultiByteToWideChar(CP_UTF8, 0, ...);
MultiByteToWideChar(CP_UTF8, MB_ERR_INVALID_CHARS, ...);
WideCharToMultiByte(CP_UTF8, 0, ...);
IsTextUnicode(...);
などが使えると思われます。



576 名前:デフォルトの名無しさん [2021/02/06(土) 17:41:00.54 ID:GfZyzG1j.net]
スカラー値が一文字を表現するとは限りませんが、ユニコードスカラー値を基本にするのが現実的な妥協点だと思います。
きちんと処理するのは、データベースとアルゴリズムが必要なので、少人数では無理です。
ICUが有力な選択肢となりますが、これも気難しいライブラリなので、用途に合わないかもしれません。

事実上、世界中の様々な民族の文字を統一的に扱う目論見は破綻していると思います。

577 名前:デフォルトの名無しさん mailto:sage [2021/02/06(土) 17:44:16.27 ID:+KPQZs33.net]
https://youtu.be/wN0x9eZLix4






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<256KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef