[過去ログ] C++相談室 part164 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
1(1): (ワッチョイ 33da-QP0H) 2023/05/09(火)11:50 ID:EYc2I7oW0(1) AAS
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
↑同じ内容を3行貼り付けること
次スレは>>980が立てること
無理なら細かく安価指定
※前スレ
C++相談室 part163
2chスレ:tech VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
876(1): (ワッチョイ 1379-3b5p) 2023/10/14(土)12:06 ID:91QwaM6H0(1) AAS
俺じゃないならなんでこの流れでわざわざ出版があーだこーだ言い出したの?
そういった行為は横紙破りって言うんだよ口語ではあんま使わない言葉だけど
社会でうまくやっていけてなさそう
877: (ワッチョイ d17c-YxuP) 2023/10/14(土)12:10 ID:JB0xgUuV0(1) AAS
また紙の話してる
878: (アウアウウー Sadd-f0fU) 2023/10/14(土)12:14 ID:x03gZ5vca(1) AAS
自分で剃ってるのかと思ったが
本人が反論したことで
本人の望まない形で禿ていることがバレるという悪循環
879(1): (ワッチョイ 5901-Vk26) 2023/10/14(土)12:42 ID:up3P3K8x0(3/5) AAS
>>876
彼は出版しているので
名前を出されても構わない立場の人間であるということ
モブとは違うんだよ
880(1): (ワッチョイ 53cb-k/Ti) 2023/10/14(土)13:20 ID:ULvJZdiM0(1) AAS
Twitterにいつもいるから直接聞けよコミュ障
881(1): (ワッチョイ c105-v2ln) 2023/10/14(土)18:20 ID:ma8uiWBB0(2/3) AAS
>>880
正論
>>879
書いてないと主張するお前が、名前が書かれた文章前半の一部のみ勝手に正当主張をしてるのはわかってるんだけど、後半の文章についてはどう考えてるの?
882: (ワッチョイ 5901-Vk26) 2023/10/14(土)19:26 ID:up3P3K8x0(4/5) AAS
>>881
>書いてないと主張するお前が、名前が書かれた文章前半の
>一部のみ勝手に正当主張をしてるのはわかってるんだけど、
>後半の文章についてはどう考えてるの?
どれか分からんからきちんと書け
883(1): (ワッチョイ c105-v2ln) 2023/10/14(土)21:50 ID:ma8uiWBB0(3/3) AAS
横から入ってきた割に、話が通じないやつって初めて見た
884: (ワッチョイ 5901-Vk26) 2023/10/14(土)21:57 ID:up3P3K8x0(5/5) AAS
>>883
プログラム書いてるだろうに文章が下手過ぎるから話が通じない
俺は侮辱するようなことは一言も書いていない
別人が書いたのを読み違えてるんだよ
885: (ワッチョイ b990-lUy8) 2023/10/15(日)06:50 ID:DwcyuqQy0(1) AAS
基地外のスレチ荒らしはスルーしようぜ
886(1): (ワッチョイ c105-v2ln) 2023/10/15(日)07:30 ID:T2NVqJIH0(1) AAS
>>864は覚えておくわ
887: (ワッチョイ 5901-Vk26) 2023/10/15(日)11:44 ID:S1qRngxA0(1) AAS
>>>886
ちゃんと覚えとけよ
それは俺じゃないからね
888: (ワッチョイ 13f0-jdKV) 2023/10/15(日)17:41 ID:9kWoH1jw0(1/2) AAS
ハゲはナニやってもハゲるらしいからな
理由なんて無いだろう
889: (ワッチョイ 13f0-jdKV) 2023/10/15(日)17:43 ID:9kWoH1jw0(2/2) AAS
ハゲるヤツはナニやってもハゲるらしいからな
そもそも理由なんて無いのだろう
890: (ワッチョイ 1302-os2T) 2023/10/15(日)21:12 ID:ehVuw9SG0(1) AAS
いつまでもお傍にいます、最後まで…
891: (ワッチョイ 01f5-uehJ) 2023/10/16(月)08:48 ID:yu+2eKsI0(1) AAS
Stroustrupのことはハゲハゲ言うくせに江添に対しては厳しいんだなw
892: (スッップ Sd33-boBM) 2023/10/17(火)17:04 ID:zRs2E77Cd(1/2) AAS
言う程ハゲてない
まだ大丈夫
893: (スッップ Sd33-boBM) 2023/10/17(火)17:04 ID:zRs2E77Cd(2/2) AAS
言う程ハゲてない
まだ大丈夫
894: (アウアウウー Sadd-wvjH) 2023/10/17(火)17:55 ID:it1TRy+pa(1) AAS
ひさしぶりにこのスレにきてわかったことがひとつある
C++はハゲと相性が良い
895(1): (ワッチョイ 1379-3b5p) 2023/10/17(火)19:10 ID:LcuTSSJS0(1) AAS
C++使うとハゲるって当初噂になったぐらいだが
知らんのか
896: (ワッチョイ 59da-jdKV) 2023/10/17(火)20:35 ID:B/3DhPmO0(1) AAS
空いたプランクを埋めるためにC++言語仕様を高速に無理矢理理解しようとすると却ってストレスがたまってハゲることになる恐ろしい言語
897: (ワッチョイ 39f8-jJly) 2023/10/17(火)21:21 ID:WuBQOYXz0(1) AAS
>>895
MJD?
Miwa C++ のエピスメーテーさんもHAGEなの?
898: (ワッチョイ 01a7-QDHO) 2023/10/18(水)21:04 ID:UzfqKL8d0(1) AAS
禿げるというより若白髪は明らかに増えたわ
899: (ワッチョイ c914-cthS) 2023/10/18(水)21:21 ID:ELvl69q70(1/3) AAS
いや、お前はもう若くはない
900: (ワッチョイ c914-cthS) 2023/10/18(水)21:22 ID:ELvl69q70(2/3) AAS
いや、お前はもう若くはない
901: (ワッチョイ c914-cthS) 2023/10/18(水)21:25 ID:ELvl69q70(3/3) AAS
もう若くはないのだ
902: (ワッチョイ c901-Vk26) 2023/10/18(水)21:59 ID:eoT4PoLM0(1/2) AAS
時期を逸するというのはなんとも悲しいものだ
取り返しはつかない
903: (ワッチョイ 1379-3b5p) 2023/10/18(水)22:40 ID:tODhST9E0(1) AAS
C++とMFCのコンボで世の中の何本の毛根が失われたのだろう
904: (ワッチョイ c901-Vk26) 2023/10/18(水)22:52 ID:eoT4PoLM0(2/2) AAS
取り返しはつかない
905: (ワッチョイ 3963-1J/V) 2023/10/19(木)22:15 ID:PH9oNQB60(1) AAS
質問なのですがサイズnのstd::vector<T> vecに対してi番目(i=0, 1, 2, ..., n)の要素の直前に要素elemを1個挿入する(ただしi=nは末尾に追加と解釈する
の書き方はどうすればいいですの?
とりま2種類考えた、
1) size_t sz = vec.size();
auto ins_it = (i < sz) ? std::next(vec.begin(), i) : vec.end();
vec.insert(ins_it, elem);
2) size_t sz = vec.size();
if (i < sz) { vec.insert(std::next(vec.begin(), i), elem); }
else { vec.resize(i + 1, elem); }
906(1): (ワッチョイ 797f-/4nw) 2023/10/19(木)23:37 ID:49m1KrYl0(1) AAS
vec.insert(vec.begin() + i, elem);
907: (ワッチョイ fbda-jdKV) 2023/10/20(金)09:00 ID:Z7DUQLh+0(1) AAS
simple is best よ
何事も
908: (スフッ Sd33-Kt/B) 2023/10/20(金)09:44 ID:JTOR6W7Wd(1) AAS
だから I hate C++ の Matz はまだフサフサなのか
909: (ワッチョイ b990-lUy8) 2023/10/20(金)15:53 ID:IDnubi5y0(1) AAS
コードの内容なんか忘れた半年後に
再びコード見てその瞬間、分かるように書くのが一番
その為のSimple is bestに同意
910: はちみつ餃子◆8X2XSCHEME (ワッチョイ 7b3e-RnKc) 2023/10/20(金)16:04 ID:+Ixb2Hv20(1) AAS
読み取りやすいように書くのは大事だけど、少し汚くても
わかりやすい名前を付けておけば割となんとかなる。
911: (ワッチョイ 0134-l/11) 2023/10/20(金)20:55 ID:jh4JxiwB0(1) AAS
おっと、名前付けの話?オッチャン持論語っちゃう
関数に長い名前つけるのはありと思うが、変数名は宣言箇所にコメント書いて2文字とか短い変数名が好き
ワシは元々BASICから始まってSmalltalkを学んだクチだけど、一時期のjavaみたいななんでも長い名前にするやつ大っきらい。Cの母音ラクダ方式大好き
912(1): (ワッチョイ dd14-PKJr) 2023/10/21(土)00:04 ID:JSr5Bd510(1) AAS
お前の好き嫌いでは議論にならん
優劣を語れよ、ジジイ
913: (ワッチョイ 1934-egvn) 2023/10/21(土)01:04 ID:m23W7dra0(1) AAS
>>912
が優劣について数字を出して語ってくれるそうです
どうぞw
914: はちみつ餃子◆8X2XSCHEME (ワッチョイ 8da2-+JM7) 2023/10/21(土)02:43 ID:WDz67hDs0(1) AAS
C++ はある程度は汚いものだろう。
隅々まで綺麗にしようと腐心するよりは
少なくとも部品のインターフェイスくらいはまともにして
外側に対しては綺麗なふりをするくらいが手頃な妥協点だと思う。
逆にミクロ的にスマートに書けていても
抽象化が駄目だと使いにくいよ。
内も外も綺麗ならそれに越したことはないけど
そうもいかないのが現実だからね。
915(1): (ワッチョイ d563-KkNu) 2023/10/21(土)08:17 ID:pQG7G9ym0(1/2) AAS
>>906
天才か!
なんかこの前動かしたら駄目だった気がしたけど
今やったら動いたわサーセン;;;
916: (オイコラミネオ MMbd-JD/u) 2023/10/21(土)12:13 ID:3FTa9ZLeM(1/2) AAS
vectorなのかvecなのかは言語開発者がそうと決めたからそうなってるだけ
昔はコード補間もなくx-windowのアホみたいな長い呪文APIぶち込んでたけど今もそれだったらぶち切れてる
意外なことに開発環境が変わればいろいろ変わる
917: (オイコラミネオ MMbd-JD/u) 2023/10/21(土)12:24 ID:3FTa9ZLeM(2/2) AAS
今windowの更にクソ長い基地外じみたAPI打ってるのもコード補完があるから
918(1): (アウアウウー Sa09-mHTC) 2023/10/21(土)13:25 ID:oEOsfkqwa(1) AAS
名前の長い短かいについては上述のとおり技術の進歩、開発環境の変化で落しどころがかわってくるが
俺的にはむしろネーミングのセンスのほうが気になる
俺がまだフサフサだったころはイキって一般によく使われる単語とちょっと違う単語をわざわざ探すようなことをしていたが
頭髪が薄くなるに従ってそういうことはくだらない事と思うようになり
今はできるだけベタな誰が見ても即座に意味がつかめる、あえてダッサいネーミングをするよう心がけてる
例:データを吸いあげて収納するメソッド名
フサフサ俺がつけがちな名前 → .BeamMeUp()
ハゲ俺がつける名前 → .LoadData()
919(1): はちみつ餃子◆8X2XSCHEME (ワッチョイ 8e3e-exru) 2023/10/21(土)13:28 ID:lPxmC+mr0(1) AAS
>>915
std::vector のイテレータの場合に限らず
ランダムアクセスイテレータは difference_type との加算が出来ることになってる。
外部リンク:timsong-cpp.github.io
920: (ワッチョイ 19f2-awtI) 2023/10/21(土)13:55 ID:QfWCszfk0(1) AAS
>>918
仕事でやってたら初日で怒られるレベル
921(1): (ワッチョイ 7a79-Idv/) 2023/10/21(土)14:25 ID:ifbOBJO10(1) AAS
>データを吸いあげて収納する
ハゲなのに5W1Hすら知らないと見える
922: (ワッチョイ 8eca-ANn9) 2023/10/21(土)19:03 ID:l7vz3TvG0(1) AAS
恥ずかしながら学生の頃はドイツ語で命名してましてねフフフ
923: (ワッチョイ 0105-SFbe) 2023/10/21(土)19:20 ID:5c+gSFSX0(1) AAS
korewahennsuudesu
924: (ワッチョイ d563-KkNu) 2023/10/21(土)20:59 ID:pQG7G9ym0(2/2) AAS
>>919
レス引用が分かりにくくてスマンカッタorz
そこではなくて挿入位置にsize()まで指定してたら末尾に要素が追加にできるところ
std::vector<int> vec = { 1, 2, 3 };
vec.insesrt(vec.begin() + vec.size(), 4);
cout << vec << endl; // ( 1 2 3 4 )
925: (ワッチョイ 6501-6i8i) 2023/10/21(土)21:41 ID:BercqiEL0(1/3) AAS
ラズパイレートでいうと
民主党政権の頃は1ドル80円だったけど
いまは1ドル200円
926: (ワッチョイ 6501-6i8i) 2023/10/21(土)21:41 ID:BercqiEL0(2/3) AAS
ラズパイレートでいうと
民主党政権の頃は1ドル80円だったけど
いまは1ドル200円
927: (ワッチョイ 6501-6i8i) 2023/10/21(土)22:50 ID:BercqiEL0(3/3) AAS
>>921
5W1HはMITが提唱したんじゃなかったっけ
928: (ワッチョイ 1590-wvhw) 2023/10/22(日)12:33 ID:x1FYC/BU0(1) AAS
変数でも関数でも
初見もしくは内容忘れた自分が
読んだとき何をやってるか分かるような名前付けが大事だと思う
よって長さは常識の範囲内なら長い方が良いかな
どうでもいいループ変数にindex2SearchArgumentHaystackとか
書いてたら殺意を覚えるけどさ
929: (オイコラミネオ MMbd-JD/u) 2023/10/22(日)17:33 ID:Ih9eQULqM(1) AAS
GetSelectedPersonDataFromLiveDBIfNotExistsReadDefaultValueFromSettingFileType2022Ex
930: (ワッチョイ 0105-SFbe) 2023/10/22(日)17:36 ID:+fVR99EM0(1) AAS
= 1 ;
931: (ワッチョイ 6501-6i8i) 2023/10/22(日)19:20 ID:/8xzlJDV0(1) AAS
モジュールはまだ使えんのか?
932(1): (ワッチョイ 8e3b-xUKY) 2023/10/22(日)20:40 ID:XK8cC57k0(1/2) AAS
リテラルで簡潔に書けるのでみんな初期化子リストばんばん使ってると思うけど
initializer_listって必ずコピーが発生するのな
non copyableなクラスが使えなくて不便なんだが、回避策ない?
933(2): (ワッチョイ 5d01-46Vy) 2023/10/22(日)20:47 ID:tZaS4o4u0(1/2) AAS
>>932
>non copyableなクラスが使えなくて不便なんだが、回避策ない?
moveすれば?
934(1): (ワッチョイ 8e01-tEca) 2023/10/22(日)23:26 ID:XK8cC57k0(2/2) AAS
>>933
できないんだよ
935(2): (ワッチョイ 5d01-46Vy) 2023/10/22(日)23:33 ID:tZaS4o4u0(2/2) AAS
>>934
???
どんなコードで問題出てるの?
936(2): (ワッチョイ 8e3b-xUKY) 2023/10/23(月)01:32 ID:sueaiNV30(1) AAS
>>935
外部リンク:wandbox.org
次のコードがコンパイルできない
struct A {
A(int) {}
A(const A&) = delete;
};
int main()
{
std::vector<A> v = { 1, 2, 3 };
省1
937(1): (ワッチョイ 1998-awtI) 2023/10/23(月)05:17 ID:RG/DfB7W0(1/2) AAS
>933 >>935
外部リンク:www.google.com
クソ回答する前にググれよ
938: (ワッチョイ 5d01-46Vy) 2023/10/23(月)09:29 ID:9KLj8HWs0(1/2) AAS
>>936,937
あれ?
$ cat test.cpp
#include <iostream>
using namespace std;
struct A {
A () {cout << "construct" << endl;}
A (const A &p) = delete;
A (A &&p) {cout << "move" << endl;}
};
省16
939(2): (ワッチョイ 5d01-46Vy) 2023/10/23(月)10:27 ID:9KLj8HWs0(2/2) AAS
だめかなぁ...
#include <vector>
struct A {
A(int) {}
A(const A&) = delete;
A(A&&) = default;
};
std::vector <A> construct (std::initializer_list <A> p) {
std::vector <A> result;
for (auto itr {p.begin ()}, end {p.end ()}; itr != end; ++ itr)
省7
940: (ワッチョイ 4eda-CTkJ) 2023/10/23(月)11:36 ID:OKLUF2xV0(1) AAS
>>936
コピコン消したいなら代入オペレータ用意してやらんとダメだろ
941: (ワッチョイ 1a20-ANn9) 2023/10/23(月)13:23 ID:1EMVV/4H0(1) AAS
initializer_list<A&&>が作れないから波括弧初期化できないって話か
なるほどね
942: (ワッチョイ 19f4-awtI) 2023/10/23(月)19:21 ID:RG/DfB7W0(2/2) AAS
initializer_list作るとこまでは出来てもムーブで取り出せないのよ
だからvectorのコンストラクタにinitializer_listで渡すとエラー出るし、>>939のように
const外して一つずつ突っ込むとかしなきゃいけなくなる
ムーブ可能にする提案は出てるらしいけど
外部リンク[html]:cpplover.blogspot.com
943: (ワッチョイ 1909-awtI) 2023/10/24(火)05:35 ID:RZM2X1OT0(1/3) AAS
外部リンク:wandbox.org
std::vectorだからどうしようもないけど、自作クラスならinitializer_listよりも可変長テンプレートをオススメしたい
これならコピー不可(ムーブのみ)なクラスでも集成体初期化出来る
(ただしコンセプトかenable_ifでAまたはAに暗黙変換可能な型に限定すべき、enable_ifでもメタプログラミングで条件式作れる)
944: (ワッチョイ 1909-awtI) 2023/10/24(火)05:38 ID:RZM2X1OT0(2/3) AAS
あ、すまんコメントのとこだけどis_convertible_vの引数は逆だった
945: (ワッチョイ 1909-awtI) 2023/10/24(火)05:42 ID:RZM2X1OT0(3/3) AAS
もう一つ訂正すまん、集成体初期化じゃないな一様初期化かリスト初期化かorz
946(3): (スッップ Sd9a-SL8W) 2023/10/24(火)08:43 ID:NeqpGeoJd(1) AAS
教訓
std::vectorは使い物にならない
947: (ワッチョイ 5d01-46Vy) 2023/10/24(火)11:05 ID:B30+3CR30(1/3) AAS
>>946
何で?
948(1): (ワッチョイ 999f-dytz) 2023/10/24(火)11:09 ID:AiEp9cgJ0(1) AAS
もうC++の仕様拡張はもう限界なんだよ
あっちを立てればこっちが立たずが毎回問題になる
949(1): (ワッチョイ 5558-8kgw) 2023/10/24(火)11:19 ID:1IilAibW0(1) AAS
std2 作ってゼロからやり直さないと C++はどうにもならんね
950(1): (ワッチョイ 4eda-CTkJ) 2023/10/24(火)11:40 ID:nK1YbT6/0(1) AAS
iostreamの二の足を踏みそうだ
951: (ワッチョイ 5d01-46Vy) 2023/10/24(火)12:18 ID:B30+3CR30(2/3) AAS
>>946,948-950
具体的に議論しようぜ
952(1): (ワイーワ2 FF62-6i8i) 2023/10/24(火)12:59 ID:2UheMrybF(1) AAS
>>946
deque の方が常に良いことが多いと思う
initializer_list でうまくいかんときは
make_tuple か tie でごまかしたことがある気がするけど
あれも move じゃなくて copy だったかな
最近は Rust の方がその辺は楽な気がするな
953: (ワッチョイ 5d01-46Vy) 2023/10/24(火)13:10 ID:B30+3CR30(3/3) AAS
>>952
initializer_listでmoveできない問題なら>>939で良いのでは?
template化して関数名短くすれば使い心地は{}と
そう変わらんと思うが?
954: (ワッチョイ 8eca-ANn9) 2023/10/24(火)22:26 ID:0fDOryx60(1) AAS
文字コード周りだけは決着つけてくれ!
955(1): (ワッチョイ ba48-g88S) 2023/10/26(木)08:51 ID:+j1jszqL0(1) AAS
chatGPTが今ダウンしているので質問します
以下のC++コードでfirst->secondとなっている部分がよくわかりません
vector<pair<int, int>> A(N);
for(auto& [x, y] : A) cin >> x >> y;
unordered_map<int, int> X, Y;
for(auto& [x, y] : A){
x = X.try_emplace(x, X.size()).first->second;
y = Y.try_emplace(y, Y.size()).first->second;
}
try_emplaceはPair<iterator,bool>を返すオーバーロードがあるので
省1
956(1): はちみつ餃子◆8X2XSCHEME (ワッチョイ 8e3e-exru) 2023/10/26(木)09:25 ID:oN20rU1J0(1) AAS
>>955
格納しているのがペアなんだからペアの second 側が得られるってだけ。
イテレータは operator* や operator-> をオーバーロードしていて
要素へのポインタであるかのように扱えると考えていい。
957(1): (スププ Sd9a-Cy5w) 2023/10/26(木)22:18 ID:eAGx217zd(1) AAS
単に入れ子になってるだけ
ポインタの先の要素がまたポインタで指してるだけ
958: (ワッチョイ ba48-g88S) 2023/10/27(金)08:11 ID:IlYWK5hg0(1) AAS
>>956-957
ありがとうございました。
iteratorを返したらそのiteratorに対してさらにsecondを呼び出しているのですね
959: (ワッチョイ 5101-CP9B) 2023/10/29(日)23:41 ID:JPy8qBbk0(1) AAS
C++モジュールについて
・CMakeが3.26で実験的対応、3.28で正式対応
・g++は対応状況が良くないが、2024年第二4半期に対応できるとKitwareは考えている
・VS2022最新版内臓のCMakeバージョンは3.26
・Clangとclはモジュールに対応している
960: (ワッチョイ 13ad-c8RC) 2023/10/30(月)13:05 ID:bW5EQkS/0(1/3) AAS
Cスレで話題になっててちょっと疑問を質問
自分はgotoって全く使わないで書いているんだけど実際のところどうなんだろう
外部リンク:learn.microsoft.com
「可能な限り、goto ステートメントより break、continue、および return ステートメントを使用することをお勧めします。
ただし、break ステートメントはループの 1 つのレベルのみを終了するため、深い入れ子のループを終了するには goto ステートメントを使用する必要がある場合もあります。」
俺も深い入れ子のループを抜ける方法として
・ループ部分を関数化してreturn
・breakで抜けて if(/* 抜けた理由を再度評価 */) break; を繰り返す (※後述)
ということをしている
けどgotoで抜けるほうが楽だろうなと思うんだけど、まあ単純なバグ(プログラマーの見落とし)を除いてどういう問題があるんだろうか
省10
961: (アウアウウー Sad5-g+2W) 2023/10/30(月)13:37 ID:xnp7PI6ya(1) AAS
>深い入れ子のループを終了するには goto ステートメントを使用する必要がある場合もあります
って描いてあるしそれが問題とは言ってないんじゃないか
962: (ワッチョイ 297c-tLJy) 2023/10/30(月)14:24 ID:eEth4IuV0(1/4) AAS
とりあえずダイクストラ大先生の例の論文読もうぜ
963(1): (ワッチョイ 13ad-c8RC) 2023/10/30(月)15:01 ID:bW5EQkS/0(2/3) AAS
まあ問題あるならそもそも導入されるはずがないわけで問題ないのは分かるんだけど
「可能な限り〜お勧めします。」と言うように使用を推奨しない理由は何なのかなと
例えば特定の処理が飛ばされて動作しなくなる場合があるとかなんかな?と
964: (ワッチョイ 9b91-lnbO) 2023/10/30(月)15:54 ID:A0jdf3Dt0(1/6) AAS
それはrustのラベルbreakのような
安全なループの抜け方しか考えてないから安全で当たり前
c/c++のgotoはもっと凶悪なことができる
965: (ワッチョイ 297c-tLJy) 2023/10/30(月)16:23 ID:eEth4IuV0(2/4) AAS
C++のgotoはちゃんとデストラクタを呼んでくれるから、意外とそんなに破滅的なことにはならんのだよね
だからって多重ループ脱出以外で使おうとは思わんけど
966(1): (ワッチョイ 8101-VINR) 2023/10/30(月)16:30 ID:hnsSyQft0(1/11) AAS
俺は例外投げて脱出する
967(1): (ワッチョイ 9b91-lnbO) 2023/10/30(月)16:35 ID:A0jdf3Dt0(2/6) AAS
>>966
気軽に例外投げるとデバッガが使いづらくなるからやめときな
少なくとも仕事では
968(1): (ワッチョイ 13ad-c8RC) 2023/10/30(月)16:40 ID:bW5EQkS/0(3/3) AAS
多重ループ脱出で使っている人って多いんかな?
他にこういう使い方しているとかってない?
969: はちみつ餃子◆8X2XSCHEME (ワッチョイ 9b3e-g5YV) 2023/10/30(月)16:45 ID:I7fISnX+0(1) AAS
>>963
一般論としてはそのほうが分かりやすくなるからというだけのことだと思うよ。
ただ、それで分かりやすくならないとき、
チマチマした条件チェックであっちこっち行くよりは
流れをぶった切って goto したほうがいっそわかりやすいこともあるってのが
goto が必要な場面ってことなんだわ。
970(1): (ワッチョイ 8101-VINR) 2023/10/30(月)17:14 ID:hnsSyQft0(2/11) AAS
>>967
と言いますと?
971: (ワッチョイ d9ab-txvC) 2023/10/30(月)17:24 ID:9eqG7NVC0(1) AAS
ラムダ式にする
972: (ワッチョイ 297c-tLJy) 2023/10/30(月)17:57 ID:eEth4IuV0(3/4) AAS
>>968
自分としては多重ループ脱出がC++でのgotoの唯一の実用的な用途だと思ってる(とはいえめったに使わない)
Cなら疑似finally的な後処理に使うこともあるけど、それはC++ならRAIIにすべきだしな
それ以外の戻ったり余所のスコープに侵入したりはもちろんCでもC++でも論外
973: (ワッチョイ 8114-Qq8E) 2023/10/30(月)18:39 ID:VfsLhOLn0(1) AAS
何度も繰り返すgotoの話になると人が湧くな
974(1): (ワッチョイ 9b91-lnbO) 2023/10/30(月)18:54 ID:A0jdf3Dt0(3/6) AAS
>>970
VSのデバッガは例外投げられるとメッセージでる(設定変えればオフにはできる)
また設定によってはブレイクする
正常処理のくせに頻繁に例外投げられると非常にうざいし、本当の異常を見過ごす
975: (ワッチョイ 5101-CP9B) 2023/10/30(月)19:04 ID:qWSrxYwr0(1) AAS
switchとgoto組み合わせて状態機械作ってる
976: (ワッチョイ 9b91-lnbO) 2023/10/30(月)19:54 ID:A0jdf3Dt0(4/6) AAS
gcc拡張のlabelのアドレスとれるやつとかな
昔はイキって使ってたわ
977(1): (ワッチョイ 8101-jlrJ) 2023/10/30(月)20:16 ID:hnsSyQft0(3/11) AAS
>>974
そりゃうざいデフォルト設定だな
ループの脱出に限らず例外くらい普通に使うやろ?
ちゃんと切っとけ
978(1): (ワッチョイ 9b91-lnbO) 2023/10/30(月)20:43 ID:A0jdf3Dt0(5/6) AAS
>>977
例外が起こったときは何かおかしいことが起こっている予兆と考える防御的なVSをおれは支持する
だいたい例外安全って何それ?ってレベルのやつも多いだろ
例外で遊ぶのは趣味のときだけにしとけ
979(1): (オイコラミネオ MM6d-H9h+) 2023/10/30(月)20:48 ID:JbGfWzUOM(1/9) AAS
ループ脱出レベルで例外を使うのは変だと感じる
関数抜けないのに例外なんて…
980(1): (オイコラミネオ MM6d-H9h+) 2023/10/30(月)20:54 ID:JbGfWzUOM(2/9) AAS
んで大昔に例外に似た機能のFound文Match文とか妄想してたんだな
実質タダのgoto文
981(1): (ワッチョイ 8101-jlrJ) 2023/10/30(月)20:54 ID:hnsSyQft0(4/11) AAS
>>978
ループに限らず孫関数ひ孫関数からエラーで脱出するときどうしてんの?
例外使わんか?
982(2): (オイコラミネオ MM6d-H9h+) 2023/10/30(月)20:57 ID:JbGfWzUOM(3/9) AAS
例外は通常動作として起こらないような動作で起こすもので
何か探すループなんかで実際に対象が見つかったとしてそれは「例外」なのか?
ちがうだろー
983: (ワッチョイ 8101-jlrJ) 2023/10/30(月)20:58 ID:hnsSyQft0(5/11) AAS
>>979
俺はgotoは全く書かないな
パフォーマンス的にはgotoの方が良いかな?
984(1): (ワッチョイ 8101-jlrJ) 2023/10/30(月)20:59 ID:hnsSyQft0(6/11) AAS
>>982
実にくだらない理由だと思う
985(2): (オイコラミネオ MM6d-H9h+) 2023/10/30(月)21:01 ID:JbGfWzUOM(4/9) AAS
>>984
それが一般的な解釈でおかしな使い方をしてる人間は影で笑われている
986(1): (ワッチョイ 8101-jlrJ) 2023/10/30(月)21:06 ID:hnsSyQft0(7/11) AAS
>>985
人格を攻撃するような書き込みはやめようね
987(2): (オイコラミネオ MM6d-H9h+) 2023/10/30(月)21:07 ID:JbGfWzUOM(5/9) AAS
例外はパフォーマンス的に重いしそれ以前に
正常系の出力を異常系で投げるのはおかしい
まったくもって異常
988: (ワッチョイ 297c-tLJy) 2023/10/30(月)21:08 ID:eEth4IuV0(4/4) AAS
よその言語ではイテレータの終了通知に例外使ってたりするから人格否定するほどの話ではない
C++の慣用としてやられてないし向いてないってだけ
989(1): (オイコラミネオ MM6d-H9h+) 2023/10/30(月)21:09 ID:JbGfWzUOM(6/9) AAS
>>986
人格自体は攻撃してないだろ
事実
990: (ワッチョイ 8101-jlrJ) 2023/10/30(月)21:12 ID:hnsSyQft0(8/11) AAS
>>987
>正常系の出力を異常系で投げるのはおかしい
これを書いたのはあなたで私ではないよ
991(1): (ワッチョイ 8101-jlrJ) 2023/10/30(月)21:14 ID:hnsSyQft0(9/11) AAS
>>989
>>987の「例外はパフォーマンス的に重いし」のような議論は分かるが
>>985は人格を攻撃している書き込み
気をつけ給え
992: (ワッチョイ 9b91-lnbO) 2023/10/30(月)21:19 ID:A0jdf3Dt0(6/6) AAS
>>981
エラーならありだがtry catch書かされるのもだるいだろ
現実的に例外投げる場合はそのまま終了か、フルリブートするしかないときって考えたほうがいい
993(1): (オイコラミネオ MM6d-H9h+) 2023/10/30(月)21:19 ID:JbGfWzUOM(7/9) AAS
非常に大切で根本的な理由と例を挙げたのに「実にくだらない理由」としか取られないのが残念
例外はただの制御構文ではない
994(1): (オイコラミネオ MM6d-H9h+) 2023/10/30(月)21:20 ID:JbGfWzUOM(8/9) AAS
>>991
実にくだらない理由か本当に?
理解不足だと思うけど
995: (ワッチョイ 1bda-9b8G) 2023/10/30(月)21:22 ID:J+/7yoK80(1) AAS
凶悪といえばAnsiCのsetjmp()とlongjmp()
あれらを規格に入れてるのはキチガイとしか
996(1): (ワッチョイ 8101-jlrJ) 2023/10/30(月)21:25 ID:hnsSyQft0(10/11) AAS
>>993,994
そう思う
>>982
>例外は通常動作として起こらないような動作で起こすもので
これは今行っている議論の対象である
>何か探すループなんかで実際に対象が見つかったとしてそれは「例外」なのか?
何に使うかの理由に名称を持ち出すのは
私はくだらないと考えている
997(1): (オイコラミネオ MM6d-H9h+) 2023/10/30(月)21:28 ID:JbGfWzUOM(9/9) AAS
>>996
概念だろ
それが一番大切で実装の基本だろ
C++自体の仕様が変わるとしても例外と言う概念に沿って変わることになるはずだ
今適当にマッチを投げていて仕様がより例外側に代わってその時その使い方は生き残れるのだろうか?
998: (ワッチョイ 8101-jlrJ) 2023/10/30(月)21:31 ID:hnsSyQft0(11/11) AAS
>>997
templateメタプログラミングとか許せない人ですか?
999: (ワッチョイ d1ad-AT6i) 2023/10/31(火)06:57 ID:BIE3G76Q0(1) AAS
Core Guideline にも例外はエラー処理だけに使えとある.
多重ループからの脱出が本当にエラー処理なの?
1000: (ワッチョイ 1379-JwVi) 2023/10/31(火)07:21 ID:1/1CCAX60(1) AAS
質問いいっすか?
1001(1): 1001 ID:Thread(1/2) AAS
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 174日 19時間 30分 57秒
1002(1): 1002 ID:Thread(2/2) AAS
5ちゃんねるの運営はUPLIFT会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《UPLIFT会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
4 USD/mon. から匿名でご購入いただけます。
省4
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.041s