[表示 : 全て 最新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/

テンプレここまで

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

578 名前:蟻人間 mailto:sage [2021/02/06(土) 17:50:18.63 ID:gG6zzvvp.net]
https://ja.wikipedia.org/wiki/UTF-8

>任意のバイトの先頭ビットが "0" なら1バイト文字、"10" なら2バイト以上の文字の2番目以降のバイト、...(中略)...であると判定できる。

579 名前:蟻人間 mailto:sage [2021/02/06(土) 17:55:50.63 ID:gG6zzvvp.net]
つまり、

uint8_t utf8_byte = ...;
if (!(utf8_byte & 0x80)) {
// 1バイト文字。
} else if ((utf8_byte & 0xC0) == 0xC0) {
// マルチバイト文字の先頭バイト。
} else {
// マルチバイト文字の非先頭バイト。
}

580 名前:デフォルトの名無しさん mailto:sage [2021/02/06(土) 18:11:29.66 ID:6eQmSTNr.net]
プログラミングのお題スレ Part18
https://mevius.5ch.net/test/read.cgi/tech/1594702426/453

UTF-8 は、先頭ニブル・4ビットで、1〜4バイト文字を判別しています

こういう規則か?

581 名前:デフォルトの名無しさん mailto:sage [2021/02/06(土) 19:16:40.60 ID:S9Y30hRK.net]
>>561
殺虫剤のパラドックスって知ってる?

582 名前:デフォルトの名無しさん mailto:sage [2021/02/06(土) 20:33:00.74 ID:zn5WrP4C.net]
>>570
恥の上塗り?w

ただし、自動化されたリグレッションテストの場合は、同じテストを繰り返すことでリグレッションが低減しているという有益な結果を示すことができる。
https://note.com/akiyama924/n/nc006015de2d2

583 名前:デフォルトの名無しさん [2021/02/06(土) 21:07:07.97 ID:GfZyzG1j.net]
テストロボットだぞ、ガシャーン!ガシャーン!

584 名前:デフォルトの名無しさん [2021/02/06(土) 21:08:55.93 ID:GfZyzG1j.net]
片山さんの自動パズルとか、ウェブだったら☆1万くらいついてそうだけど。
なんでWindowsにこだわるんだろ。

585 名前:蟻人間 mailto:sage [2021/02/06(土) 22:54:31.87 ID:gG6zzvvp.net]
>>573 JavaScriptで動くものはすでにある。
https://katahiromz.github.io/xword.js/
あるが、ビジネスとして展開する能力がない。

586 名前:デフォルトの名無しさん mailto:sage [2021/02/06(土) 23:50:48.27 ID:58EQLFGq.net]
クレブナー基底で解くやつ!



587 名前:デフォルトの名無しさん mailto:sage [2021/02/07(日) 06:07:42.85 ID:HYoiJUgB.net]
>>571
質問に答えてねw

588 名前:デフォルトの名無しさん mailto:sage [2021/02/07(日) 06:47:27.09 ID:jX/y7Db/.net]
>>576
ん?
どの質問?
>>570ならリンク先読めばいいだけだろ
恥ずかしくて読めないのかもしれないけどw

589 名前:デフォルトの名無しさん mailto:sage [2021/02/07(日) 08:26:36.56 ID:HYoiJUgB.net]
>>576
俺の質問にアンカーつけといてどの質問はねえだろ
恥ずかしくてとぼけてんのおまえさんだろ

590 名前:デフォルトの名無しさん mailto:sage [2021/02/07(日) 08:29:49.52 ID:p49/UnNX.net]
テストはやらないよりもやったほうがはるかに良い
前の版通ったテストが最新版でも通るという品質は担保される
殺虫剤のパラドックスよりも恐れなければならないのは
いっぱい作ったテストコードが事実上同じテストでしかないという事態になることの方
※ 個人の感想です

591 名前:デフォルトの名無しさん mailto:sage [2021/02/07(日) 08:49:47.79 ID:m5BD34IK.net]
>>578
別に完璧になくせるなんて誰も言っていないのに勝手にツッコんでるの何?としか思ってないよ

592 名前:デフォルトの名無しさん mailto:sage [2021/02/07(日) 08:57:32.70 ID:HYoiJUgB.net]
>>580
おまえさん、こう言ったんだぜ

> 不具合が流出しない仕組みを揃えておきましょう

流出しなくなんかならねえ
不具合はポカミスばかりとは限らない
おまえさんのような浅はかな思想で突っ走った先に
碌でもない結末が待っていることだってある

揃えられるものなら揃えてみな
自分ができねえことを他人に言うな

593 名前:デフォルトの名無しさん mailto:sage [2021/02/07(日) 09:11:28.01 ID:p49/UnNX.net]
人は思い込みを反証することで生

594 名前:きていける
だが完璧に反証できないこともある
ユニットテストはそのかけがえのないものを教えてくれた
[]
[ここ壊れてます]

595 名前:デフォルトの名無しさん mailto:sage [2021/02/07(日) 09:41:41.73 ID:m5BD34IK.net]
>>581
え?それ俺じゃないけど
テストやればバグが無いといえるわけじゃないから安心するなってだけで、テストするなって話じゃないよね
主旨は同じだよね
何が気に入らないの?

596 名前:デフォルトの名無しさん mailto:sage [2021/02/07(日) 10:00:05.54 ID:HYoiJUgB.net]
ああ、俺じゃないで逃げるのか
情けねえやつだな



597 名前:デフォルトの名無しさん mailto:sage [2021/02/07(日) 10:07:20.85 ID:jX/y7Db/.net]
>>578
アンカーつけてると言うなら
> >>570ならリンク先読めばいいだけだろ
って書いてあるだろ
よほどアホでもない限りそんなアホなこと言うわけ無いと思ったからどれ?
って聞いたんだけど、想像以上のアホだったってことかな?w

598 名前:デフォルトの名無しさん mailto:sage [2021/02/07(日) 10:10:29.25 ID:jX/y7Db/.net]
>>581
不具合はなくせないから仕組みも努力もいらんと言うならそれでいいんじゃね?
お・ま・え・ん・と・ろ・こ・で・は w

599 名前:デフォルトの名無しさん mailto:sage [2021/02/07(日) 10:13:42.72 ID:2AGAGJ05.net]
マスクも手洗いもコロナを100%防げるわけじゃないから
マスク付ける必要も手を洗う必要もないね

600 名前:デフォルトの名無しさん mailto:sage [2021/02/07(日) 10:20:21.65 ID:HYoiJUgB.net]
テストツールいらねえなんて言ってねえぜ
テストツール万能論はアホの考えだと言っている

601 名前:デフォルトの名無しさん mailto:sage [2021/02/07(日) 10:21:25.49 ID:HYoiJUgB.net]
で、身に覚えのあるやつが返事してるから
ニヤニヤ笑ってるのさ

602 名前:デフォルトの名無しさん mailto:sage [2021/02/07(日) 10:48:37.66 ID:2AGAGJ05.net]
「テストツール万能論」を主張したレスなんて一つも見えないんだけど
存在しないものを見てニヤニヤしてる変態こわい

603 名前:デフォルトの名無しさん mailto:sage [2021/02/07(日) 10:56:59.83 ID:HYoiJUgB.net]
それを>>587がぬかすとは笑止な

604 名前:デフォルトの名無しさん mailto:sage [2021/02/07(日) 11:11:45.24 ID:0QEz1MW7.net]
構い過ぎじゃね?

605 名前:デフォルトの名無しさん mailto:sage [2021/02/07(日) 11:52:54.07 ID:jX/y7Db/.net]
>>591
まさかと思うけど>>587がマジで言ってるとか思ってないよね?w

606 名前:デフォルトの名無しさん mailto:sage [2021/02/07(日) 12:03:05.54 ID:2AGAGJ05.net]
ああ・・・そういうことね・・・すまん触るべきじゃなかった



607 名前:デフォルトの名無しさん mailto:sage [2021/02/07(日) 13:47:28.22 ID:p49/UnNX.net]
すまんで済んだらユニットテストは要らんわ!

608 名前:デフォルトの名無しさん mailto:sage [2021/02/07(日) 14:09:34.56 ID:qbLU6RFF.net]
野菜食えで馬鹿みたいにブチギレるホリエと一緒やな

609 名前:デフォルトの名無しさん mailto:sage [2021/02/07(日) 15:05:54.73 ID:HYoiJUgB.net]
>>593
奴は「必要ないね」とぬかしたんだ
別に武漢熱に話をすり替えようとすり替えまいとそこは関係ない

610 名前:デフォルトの名無しさん mailto:sage [2021/02/07(日) 15:41:29.20 ID:yi1XmM9H.net]
>>597
文章を字面通りにしか解釈できない人?

611 名前:デフォルトの名無しさん mailto:sage [2021/02/07(日) 16:31:48.90 ID:jcLu/xd9.net]
vectorを参照渡しするときの方法について教えてくください
class sansyo
{
private:
std::vector<short> _stdSansyo;
public:
void setSansyo(std::vector<short>& sansyo);
}
;void sansyo::setSansyo(std::vector<short>& sansyo)
{
_stdSansyo = sansyo;
_stdSansyo[5] = 500;
}
int main()
{
std::vector<short> moto;
sansyo cSansyo;
for (int i = 0; i < 10; i++) {
short tmp = i * 2;
moto.push_back(tmp);
}
cSansyo.setSansyo(moto);//ここで参照渡しのはず
for (int i = 0; i < 10; i++) {
std::cout << "値=" << moto[i] << "\n"; //値が変わっていない
}
}
こんなふうに、参照渡しにしてみたのですがどうも参照渡しになっていないでそのまま新しいvectorが作られちゃったぽいのですが
これだとメモリを倍使っちゃってるし、時間も掛かってますよね
どういうふうにしたら、喚ばれた側の関数で参照渡しに出来るのでしょう

612 名前:蟻人間 mailto:sage [2021/02/07(日) 16:37:08.22 ID:sfdJNFTq.net]
>>599
右辺値参照かstd::swap

613 名前:デフォルトの名無しさん mailto:sage [2021/02/07(日) 17:13:26.18 ID:8CWTHaUD.net]
>>600
サンプル貼ってよ

614 名前:デフォルトの名無しさん mailto:sage [2021/02/07(日) 17:21:04.63 ID:jcLu/xd9.net]
std::swapも右辺値参照も全然上手く行きそうになかっのたで

宣言をポインタにして
private:
std::vector<short> *_stdSansyo;

void sansyo::setSansyo(std::vector<short>& sansyo)
{
_stdSansyo = &sansyo;
sansyo[6] = 100;
_stdSansyo->data()[5] = 50;
}

関数をこんなふうに書き換えたら、ちゃんと参照だけで動いたのでもういいや

けど右辺値参照とstd::swapの例も出してくれたらこれから色々いたスカリマス

615 名前:デフォルトの名無しさん mailto:sage [2021/02/07(日) 17:24:59.07 ID:8CWTHaUD.net]
>>600
ほれほれ
貼れんのか

616 名前:デフォルトの名無しさん mailto:sage [2021/02/07(日) 17:28:56.01 ID:yi1XmM9H.net]
>>599
参照渡し自体はできてるはず。
ただ参照渡ししたvectorをクラスのメンバに代入して、代入されたクラスメンバの方を更新しているからvectorを渡した元の方にはまったく影響が無いというだけ。



617 名前:デフォルトの名無しさん mailto:sage [2021/02/07(日) 17:29:10.92 ID:jX/y7Db/.net]
>>598
もうそう言うことにしないと自我が保てないんだろw

618 名前:デフォルトの名無しさん mailto:sage [2021/02/07(日) 17:59:39.88 ID:p49/UnNX.net]
sansyo::_stdSanshoをどうしても参照にしたいならこうするしか、
class sansho {
private:
std::vector<short> _stdSansyo;
public:
sansho(std::vector<short>& src) : _stdSansyo(src) { }
void setSansyo(std::vector<short>& sansyo);
};
void sansyo::setSansyo(std::vector<short>& sansyo) {
_stdSansyo[5] = 500;
}
int main() {
std::vector<short> moto;
sansyo cSansyo(moto); //ここで参照渡し
for (int i = 0; i < 10; i++) {
short tmp = i * 2;
moto.push_back(tmp);
}
cSansyo.setSansyo(moto); // moto[5]に500が入りまくり
for (int i = 0; i < 10; i++) {
std::cout << "値=" << moto[i] << "\n"; //値が変わった!(予定
}
};

619 名前:デフォルトの名無しさん mailto:sage [2021/02/07(日) 18:00:52.99 ID:HYoiJUgB.net]
>>598
だったら何だとぬかす気だ?
> 存在しないものを見てニヤニヤしてる変態こわい
> 文章を字面通りにしか解釈できない人?

要するに話になんない奴ってことだろ
言ったことにも裏の意味にもコメントされたくない
じゃあ相手しねえでやるから黙ってろゴミ

620 名前:デフォルトの名無しさん mailto:sage [2021/02/07(日) 18:02:35.24 ID:p49/UnNX.net]
訂正orz
誤: private: std::vector<short> _stdSansyo;
正: private: std::vector<short>& _stdSansyo;

もしcSansyo.setSansyo(moto)の呼び出し時に参照を渡したいんじゃああ!
という向きにはsansyo::_stdSansyoはstd::vector<short>* _stdSanshoにして
ポインタを持つようにすべき

621 名前:デフォルトの名無しさん mailto:sage [2021/02/07(日) 18:10:05.07 ID:p49/UnNX.net]
ちゅかもっと大きな一般原則としてつぎのどっちかにすべき
(1) std::vector<short>の実体の所有権をmain()(で定義いているmoto)に固定してcSanshoクラスにmotoのアドレスを記憶させない
(2) std::vector<short>の実体の所有権をcSanshoクラスのインスタンス(_stdSansyo;)に固定してmain()でmotoを定義するのをやめる
※ 個人の感想です

つまり出題が悪い。出し直し

622 名前:はちみつ餃子 mailto:sage [2021/02/07(日) 18:10:05.98 ID:hHDgzHUe.net]
>>602
元の考え方を変えずに動作させるにはその方法は十分に妥当だと思うよ。

ただ、もっと複雑なプログラムになったときにうっかりデータよりポインタのほうが
長生きすることになっても発見しづらいデザインになっている。

可能なら全体のデザインを見直すべきという話で、
いっそ所有権を渡してしまったほうが間違いにくいかもねという意味で右辺値参照や swap の話題が出ているので、
>>599 をベースにして右辺値参照や swap を使う例に書き換えるのは難しい。
別物になってしまう。

623 名前:デフォルトの名無しさん mailto:sage [2021/02/07(日) 18:11:12.01 ID:yi1XmM9H.net]
>>607
自分以外の複数の人を同一人物だと思っちゃう人?

624 名前:デフォルトの名無しさん mailto:sage [2021/02/07(日) 18:14:03.86 ID:p49/UnNX.net]
>>611
ネットの総意とか言い出しちゃう人?

625 名前:デフォルトの名無しさん mailto:sage [2021/02/07(日) 18:16:20.19 ID:p49/UnNX.net]
検証不能な事物を錦の御旗にするような人間が
ソフトウェアのテスト推しなのは
大いなる矛盾である氏ね

626 名前:デフォルトの名無しさん mailto:sage [2021/02/07(日) 18:18:25.00 ID:HYoiJUgB.net]
>>611
あの流れで
> 文章を字面通りにしか解釈できない人?
なんてぬかすやつは複数ID自演厨と見なされて当然だ
疑われたくなければ口の利き方に気をつけな

疑いは晴れてない
この後の発言にも気をつけるんだな



627 名前:デフォルトの名無しさん [2021/02/07(日) 18:24:44.17 ID:4v/nAOdw.net]
>>566
なにこれ

628 名前:デフォルトの名無しさん [2021/02/07(日) 18:29:05.24 ID:U/6f7Qk0.net]
参照をフィールドに保持するのは、一部のパーサーくらいでは?

しかも、状態を関数に切り分けないとデバッグが辛いので、仕方なくそうするだけで、バッド何とかの類だし。






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

前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