!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
↑同じ内容を3行貼り付けること
次スレは>>980が立てること
無理なら細かく安価指定
※前スレ
C++相談室 part163
https://mevius.5ch.net/test/read.cgi/tech/1672409791/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
探検
C++相談室 part164
レス数が1000を超えています。これ以上書き込みはできません。
1デフォルトの名無しさん (ワッチョイ 33da-QP0H)
2023/05/09(火) 11:50:52.06ID:EYc2I7oW0916デフォルトの名無しさん (オイコラミネオ MMbd-JD/u)
2023/10/21(土) 12:13:35.82ID:3FTa9ZLeM vectorなのかvecなのかは言語開発者がそうと決めたからそうなってるだけ
昔はコード補間もなくx-windowのアホみたいな長い呪文APIぶち込んでたけど今もそれだったらぶち切れてる
意外なことに開発環境が変わればいろいろ変わる
昔はコード補間もなくx-windowのアホみたいな長い呪文APIぶち込んでたけど今もそれだったらぶち切れてる
意外なことに開発環境が変わればいろいろ変わる
917デフォルトの名無しさん (オイコラミネオ MMbd-JD/u)
2023/10/21(土) 12:24:11.96ID:3FTa9ZLeM 今windowの更にクソ長い基地外じみたAPI打ってるのもコード補完があるから
918デフォルトの名無しさん (アウアウウー Sa09-mHTC)
2023/10/21(土) 13:25:34.47ID:oEOsfkqwa 名前の長い短かいについては上述のとおり技術の進歩、開発環境の変化で落しどころがかわってくるが
俺的にはむしろネーミングのセンスのほうが気になる
俺がまだフサフサだったころはイキって一般によく使われる単語とちょっと違う単語をわざわざ探すようなことをしていたが
頭髪が薄くなるに従ってそういうことはくだらない事と思うようになり
今はできるだけベタな誰が見ても即座に意味がつかめる、あえてダッサいネーミングをするよう心がけてる
例:データを吸いあげて収納するメソッド名
フサフサ俺がつけがちな名前 → .BeamMeUp()
ハゲ俺がつける名前 → .LoadData()
俺的にはむしろネーミングのセンスのほうが気になる
俺がまだフサフサだったころはイキって一般によく使われる単語とちょっと違う単語をわざわざ探すようなことをしていたが
頭髪が薄くなるに従ってそういうことはくだらない事と思うようになり
今はできるだけベタな誰が見ても即座に意味がつかめる、あえてダッサいネーミングをするよう心がけてる
例:データを吸いあげて収納するメソッド名
フサフサ俺がつけがちな名前 → .BeamMeUp()
ハゲ俺がつける名前 → .LoadData()
919はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 8e3e-exru)
2023/10/21(土) 13:28:07.89ID:lPxmC+mr0 >>915
std::vector のイテレータの場合に限らず
ランダムアクセスイテレータは difference_type との加算が出来ることになってる。
https://timsong-cpp.github.io/cppwp/n3337/iterator.requirements#tab:iterator.random.access.requirements
std::vector のイテレータの場合に限らず
ランダムアクセスイテレータは difference_type との加算が出来ることになってる。
https://timsong-cpp.github.io/cppwp/n3337/iterator.requirements#tab:iterator.random.access.requirements
920デフォルトの名無しさん (ワッチョイ 19f2-awtI)
2023/10/21(土) 13:55:07.32ID:QfWCszfk0 >>918
仕事でやってたら初日で怒られるレベル
仕事でやってたら初日で怒られるレベル
921デフォルトの名無しさん (ワッチョイ 7a79-Idv/)
2023/10/21(土) 14:25:15.02ID:ifbOBJO10 >データを吸いあげて収納する
ハゲなのに5W1Hすら知らないと見える
ハゲなのに5W1Hすら知らないと見える
922デフォルトの名無しさん (ワッチョイ 8eca-ANn9)
2023/10/21(土) 19:03:13.06ID:l7vz3TvG0 恥ずかしながら学生の頃はドイツ語で命名してましてねフフフ
923デフォルトの名無しさん (ワッチョイ 0105-SFbe)
2023/10/21(土) 19:20:36.30ID:5c+gSFSX0 korewahennsuudesu
924デフォルトの名無しさん (ワッチョイ d563-KkNu)
2023/10/21(土) 20:59:24.58ID:pQG7G9ym0 >>919
レス引用が分かりにくくてスマンカッタorz
そこではなくて挿入位置にsize()まで指定してたら末尾に要素が追加にできるところ
std::vector<int> vec = { 1, 2, 3 };
vec.insesrt(vec.begin() + vec.size(), 4);
cout << vec << endl; // ( 1 2 3 4 )
レス引用が分かりにくくてスマンカッタ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:14.77ID:BercqiEL0 ラズパイレートでいうと
民主党政権の頃は1ドル80円だったけど
いまは1ドル200円
民主党政権の頃は1ドル80円だったけど
いまは1ドル200円
926デフォルトの名無しさん (ワッチョイ 6501-6i8i)
2023/10/21(土) 21:41:30.90ID:BercqiEL0 ラズパイレートでいうと
民主党政権の頃は1ドル80円だったけど
いまは1ドル200円
民主党政権の頃は1ドル80円だったけど
いまは1ドル200円
927デフォルトの名無しさん (ワッチョイ 6501-6i8i)
2023/10/21(土) 22:50:32.79ID:BercqiEL0 >>921
5W1HはMITが提唱したんじゃなかったっけ
5W1HはMITが提唱したんじゃなかったっけ
928デフォルトの名無しさん (ワッチョイ 1590-wvhw)
2023/10/22(日) 12:33:14.88ID:x1FYC/BU0 変数でも関数でも
初見もしくは内容忘れた自分が
読んだとき何をやってるか分かるような名前付けが大事だと思う
よって長さは常識の範囲内なら長い方が良いかな
どうでもいいループ変数にindex2SearchArgumentHaystackとか
書いてたら殺意を覚えるけどさ
初見もしくは内容忘れた自分が
読んだとき何をやってるか分かるような名前付けが大事だと思う
よって長さは常識の範囲内なら長い方が良いかな
どうでもいいループ変数にindex2SearchArgumentHaystackとか
書いてたら殺意を覚えるけどさ
929デフォルトの名無しさん (オイコラミネオ MMbd-JD/u)
2023/10/22(日) 17:33:51.66ID:Ih9eQULqM GetSelectedPersonDataFromLiveDBIfNotExistsReadDefaultValueFromSettingFileType2022Ex
930デフォルトの名無しさん (ワッチョイ 0105-SFbe)
2023/10/22(日) 17:36:33.94ID:+fVR99EM0 = 1 ;
931デフォルトの名無しさん (ワッチョイ 6501-6i8i)
2023/10/22(日) 19:20:31.79ID:/8xzlJDV0 モジュールはまだ使えんのか?
932デフォルトの名無しさん (ワッチョイ 8e3b-xUKY)
2023/10/22(日) 20:40:59.32ID:XK8cC57k0 リテラルで簡潔に書けるのでみんな初期化子リストばんばん使ってると思うけど
initializer_listって必ずコピーが発生するのな
non copyableなクラスが使えなくて不便なんだが、回避策ない?
initializer_listって必ずコピーが発生するのな
non copyableなクラスが使えなくて不便なんだが、回避策ない?
933デフォルトの名無しさん (ワッチョイ 5d01-46Vy)
2023/10/22(日) 20:47:43.40ID:tZaS4o4u0934デフォルトの名無しさん (ワッチョイ 8e01-tEca)
2023/10/22(日) 23:26:18.52ID:XK8cC57k0 >>933
できないんだよ
できないんだよ
935デフォルトの名無しさん (ワッチョイ 5d01-46Vy)
2023/10/22(日) 23:33:55.26ID:tZaS4o4u0936デフォルトの名無しさん (ワッチョイ 8e3b-xUKY)
2023/10/23(月) 01:32:53.76ID:sueaiNV30 >>935
https://wandbox.org/permlink/n0KXbXrmLzHDl6KU
次のコードがコンパイルできない
struct A {
A(int) {}
A(const A&) = delete;
};
int main()
{
std::vector<A> v = { 1, 2, 3 };
}
https://wandbox.org/permlink/n0KXbXrmLzHDl6KU
次のコードがコンパイルできない
struct A {
A(int) {}
A(const A&) = delete;
};
int main()
{
std::vector<A> v = { 1, 2, 3 };
}
937デフォルトの名無しさん (ワッチョイ 1998-awtI)
2023/10/23(月) 05:17:34.59ID:RG/DfB7W0938デフォルトの名無しさん (ワッチョイ 5d01-46Vy)
2023/10/23(月) 09:29:50.40ID:9KLj8HWs0 >>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;}
};
void func (initializer_list <A> p) {
cout << "func" << endl;
}
int main () {
A a0;
A a1;
func ({move (a0), move (a1)});
return 0;
}
$ g++ test.cpp
$ ./a.out
construct
construct
move
move
func
あれ?
$ 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;}
};
void func (initializer_list <A> p) {
cout << "func" << endl;
}
int main () {
A a0;
A a1;
func ({move (a0), move (a1)});
return 0;
}
$ g++ test.cpp
$ ./a.out
construct
construct
move
move
func
939デフォルトの名無しさん (ワッチョイ 5d01-46Vy)
2023/10/23(月) 10:27:22.01ID:9KLj8HWs0 だめかなぁ...
#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)
result.push_back (std::move (const_cast <A &> (*itr)));
return result;
}
int main()
{
std::vector<A> v = construct ({ 1, 2, 3 });
}
#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)
result.push_back (std::move (const_cast <A &> (*itr)));
return result;
}
int main()
{
std::vector<A> v = construct ({ 1, 2, 3 });
}
940デフォルトの名無しさん (ワッチョイ 4eda-CTkJ)
2023/10/23(月) 11:36:11.62ID:OKLUF2xV0 >>936
コピコン消したいなら代入オペレータ用意してやらんとダメだろ
コピコン消したいなら代入オペレータ用意してやらんとダメだろ
941デフォルトの名無しさん (ワッチョイ 1a20-ANn9)
2023/10/23(月) 13:23:41.68ID:1EMVV/4H0 initializer_list<A&&>が作れないから波括弧初期化できないって話か
なるほどね
なるほどね
942デフォルトの名無しさん (ワッチョイ 19f4-awtI)
2023/10/23(月) 19:21:53.26ID:RG/DfB7W0 initializer_list作るとこまでは出来てもムーブで取り出せないのよ
だからvectorのコンストラクタにinitializer_listで渡すとエラー出るし、>>939のように
const外して一つずつ突っ込むとかしなきゃいけなくなる
ムーブ可能にする提案は出てるらしいけど
https://cpplover.blogspot.com/2014/11/2014-10-pre-urbana-mailings-n4160-n4169.html?m=1
だからvectorのコンストラクタにinitializer_listで渡すとエラー出るし、>>939のように
const外して一つずつ突っ込むとかしなきゃいけなくなる
ムーブ可能にする提案は出てるらしいけど
https://cpplover.blogspot.com/2014/11/2014-10-pre-urbana-mailings-n4160-n4169.html?m=1
943デフォルトの名無しさん (ワッチョイ 1909-awtI)
2023/10/24(火) 05:35:10.47ID:RZM2X1OT0 https://wandbox.org/permlink/h9ZXqkhA56d7EOYP
std::vectorだからどうしようもないけど、自作クラスならinitializer_listよりも可変長テンプレートをオススメしたい
これならコピー不可(ムーブのみ)なクラスでも集成体初期化出来る
(ただしコンセプトかenable_ifでAまたはAに暗黙変換可能な型に限定すべき、enable_ifでもメタプログラミングで条件式作れる)
std::vectorだからどうしようもないけど、自作クラスならinitializer_listよりも可変長テンプレートをオススメしたい
これならコピー不可(ムーブのみ)なクラスでも集成体初期化出来る
(ただしコンセプトかenable_ifでAまたはAに暗黙変換可能な型に限定すべき、enable_ifでもメタプログラミングで条件式作れる)
944デフォルトの名無しさん (ワッチョイ 1909-awtI)
2023/10/24(火) 05:38:03.34ID:RZM2X1OT0 あ、すまんコメントのとこだけどis_convertible_vの引数は逆だった
945デフォルトの名無しさん (ワッチョイ 1909-awtI)
2023/10/24(火) 05:42:10.71ID:RZM2X1OT0 もう一つ訂正すまん、集成体初期化じゃないな一様初期化かリスト初期化かorz
946デフォルトの名無しさん (スッップ Sd9a-SL8W)
2023/10/24(火) 08:43:43.05ID:NeqpGeoJd 教訓
std::vectorは使い物にならない
std::vectorは使い物にならない
947デフォルトの名無しさん (ワッチョイ 5d01-46Vy)
2023/10/24(火) 11:05:08.48ID:B30+3CR30 >>946
何で?
何で?
948デフォルトの名無しさん (ワッチョイ 999f-dytz)
2023/10/24(火) 11:09:20.45ID:AiEp9cgJ0 もうC++の仕様拡張はもう限界なんだよ
あっちを立てればこっちが立たずが毎回問題になる
あっちを立てればこっちが立たずが毎回問題になる
949デフォルトの名無しさん (ワッチョイ 5558-8kgw)
2023/10/24(火) 11:19:38.47ID:1IilAibW0 std2 作ってゼロからやり直さないと C++はどうにもならんね
950デフォルトの名無しさん (ワッチョイ 4eda-CTkJ)
2023/10/24(火) 11:40:18.75ID:nK1YbT6/0 iostreamの二の足を踏みそうだ
951デフォルトの名無しさん (ワッチョイ 5d01-46Vy)
2023/10/24(火) 12:18:26.26ID:B30+3CR30 >>946,948-950
具体的に議論しようぜ
具体的に議論しようぜ
952デフォルトの名無しさん (ワイーワ2 FF62-6i8i)
2023/10/24(火) 12:59:19.46ID:2UheMrybF >>946
deque の方が常に良いことが多いと思う
initializer_list でうまくいかんときは
make_tuple か tie でごまかしたことがある気がするけど
あれも move じゃなくて copy だったかな
最近は Rust の方がその辺は楽な気がするな
deque の方が常に良いことが多いと思う
initializer_list でうまくいかんときは
make_tuple か tie でごまかしたことがある気がするけど
あれも move じゃなくて copy だったかな
最近は Rust の方がその辺は楽な気がするな
953デフォルトの名無しさん (ワッチョイ 5d01-46Vy)
2023/10/24(火) 13:10:28.54ID:B30+3CR30954デフォルトの名無しさん (ワッチョイ 8eca-ANn9)
2023/10/24(火) 22:26:14.45ID:0fDOryx60 文字コード周りだけは決着つけてくれ!
955デフォルトの名無しさん (ワッチョイ ba48-g88S)
2023/10/26(木) 08:51:51.55ID:+j1jszqL0 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>を返すオーバーロードがあるので
firstまではわかるもののそこからさらにsecondとすると何がおきるのでしょうか
以下の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>を返すオーバーロードがあるので
firstまではわかるもののそこからさらにsecondとすると何がおきるのでしょうか
956はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 8e3e-exru)
2023/10/26(木) 09:25:01.17ID:oN20rU1J0 >>955
格納しているのがペアなんだからペアの second 側が得られるってだけ。
イテレータは operator* や operator-> をオーバーロードしていて
要素へのポインタであるかのように扱えると考えていい。
格納しているのがペアなんだからペアの second 側が得られるってだけ。
イテレータは operator* や operator-> をオーバーロードしていて
要素へのポインタであるかのように扱えると考えていい。
957デフォルトの名無しさん (スププ Sd9a-Cy5w)
2023/10/26(木) 22:18:49.00ID:eAGx217zd 単に入れ子になってるだけ
ポインタの先の要素がまたポインタで指してるだけ
ポインタの先の要素がまたポインタで指してるだけ
958デフォルトの名無しさん (ワッチョイ ba48-g88S)
2023/10/27(金) 08:11:42.47ID:IlYWK5hg0959デフォルトの名無しさん (ワッチョイ 5101-CP9B)
2023/10/29(日) 23:41:12.89ID:JPy8qBbk0 C++モジュールについて
・CMakeが3.26で実験的対応、3.28で正式対応
・g++は対応状況が良くないが、2024年第二4半期に対応できるとKitwareは考えている
・VS2022最新版内臓のCMakeバージョンは3.26
・Clangとclはモジュールに対応している
・CMakeが3.26で実験的対応、3.28で正式対応
・g++は対応状況が良くないが、2024年第二4半期に対応できるとKitwareは考えている
・VS2022最新版内臓のCMakeバージョンは3.26
・Clangとclはモジュールに対応している
960デフォルトの名無しさん (ワッチョイ 13ad-c8RC)
2023/10/30(月) 13:05:26.07ID:bW5EQkS/0 Cスレで話題になっててちょっと疑問を質問
自分はgotoって全く使わないで書いているんだけど実際のところどうなんだろう
https://learn.microsoft.com/ja-jp/cpp/cpp/goto-statement-cpp?view=msvc-170
「可能な限り、goto ステートメントより break、continue、および return ステートメントを使用することをお勧めします。
ただし、break ステートメントはループの 1 つのレベルのみを終了するため、深い入れ子のループを終了するには goto ステートメントを使用する必要がある場合もあります。」
俺も深い入れ子のループを抜ける方法として
・ループ部分を関数化してreturn
・breakで抜けて if(/* 抜けた理由を再度評価 */) break; を繰り返す (※後述)
ということをしている
けどgotoで抜けるほうが楽だろうなと思うんだけど、まあ単純なバグ(プログラマーの見落とし)を除いてどういう問題があるんだろうか
for ( i = 0; i < 10; i++ )
{
printf_s( "Outer loop executing. i = %d\n", i );
for ( j = 0; j < 2; j++ )
{
printf_s( " Inner loop executing. j = %d\n", j );
if ( i == 3 ) break; // 内側のループ抜け
}
if ( i == 3 ) break; // 外側のループ抜け
}
自分はgotoって全く使わないで書いているんだけど実際のところどうなんだろう
https://learn.microsoft.com/ja-jp/cpp/cpp/goto-statement-cpp?view=msvc-170
「可能な限り、goto ステートメントより break、continue、および return ステートメントを使用することをお勧めします。
ただし、break ステートメントはループの 1 つのレベルのみを終了するため、深い入れ子のループを終了するには goto ステートメントを使用する必要がある場合もあります。」
俺も深い入れ子のループを抜ける方法として
・ループ部分を関数化してreturn
・breakで抜けて if(/* 抜けた理由を再度評価 */) break; を繰り返す (※後述)
ということをしている
けどgotoで抜けるほうが楽だろうなと思うんだけど、まあ単純なバグ(プログラマーの見落とし)を除いてどういう問題があるんだろうか
for ( i = 0; i < 10; i++ )
{
printf_s( "Outer loop executing. i = %d\n", i );
for ( j = 0; j < 2; j++ )
{
printf_s( " Inner loop executing. j = %d\n", j );
if ( i == 3 ) break; // 内側のループ抜け
}
if ( i == 3 ) break; // 外側のループ抜け
}
961デフォルトの名無しさん (アウアウウー Sad5-g+2W)
2023/10/30(月) 13:37:46.82ID:xnp7PI6ya >深い入れ子のループを終了するには goto ステートメントを使用する必要がある場合もあります
って描いてあるしそれが問題とは言ってないんじゃないか
って描いてあるしそれが問題とは言ってないんじゃないか
962デフォルトの名無しさん (ワッチョイ 297c-tLJy)
2023/10/30(月) 14:24:40.02ID:eEth4IuV0 とりあえずダイクストラ大先生の例の論文読もうぜ
963デフォルトの名無しさん (ワッチョイ 13ad-c8RC)
2023/10/30(月) 15:01:52.03ID:bW5EQkS/0 まあ問題あるならそもそも導入されるはずがないわけで問題ないのは分かるんだけど
「可能な限り〜お勧めします。」と言うように使用を推奨しない理由は何なのかなと
例えば特定の処理が飛ばされて動作しなくなる場合があるとかなんかな?と
「可能な限り〜お勧めします。」と言うように使用を推奨しない理由は何なのかなと
例えば特定の処理が飛ばされて動作しなくなる場合があるとかなんかな?と
964デフォルトの名無しさん (ワッチョイ 9b91-lnbO)
2023/10/30(月) 15:54:27.55ID:A0jdf3Dt0 それはrustのラベルbreakのような
安全なループの抜け方しか考えてないから安全で当たり前
c/c++のgotoはもっと凶悪なことができる
安全なループの抜け方しか考えてないから安全で当たり前
c/c++のgotoはもっと凶悪なことができる
965デフォルトの名無しさん (ワッチョイ 297c-tLJy)
2023/10/30(月) 16:23:23.04ID:eEth4IuV0 C++のgotoはちゃんとデストラクタを呼んでくれるから、意外とそんなに破滅的なことにはならんのだよね
だからって多重ループ脱出以外で使おうとは思わんけど
だからって多重ループ脱出以外で使おうとは思わんけど
966デフォルトの名無しさん (ワッチョイ 8101-VINR)
2023/10/30(月) 16:30:54.25ID:hnsSyQft0 俺は例外投げて脱出する
967デフォルトの名無しさん (ワッチョイ 9b91-lnbO)
2023/10/30(月) 16:35:01.03ID:A0jdf3Dt0968デフォルトの名無しさん (ワッチョイ 13ad-c8RC)
2023/10/30(月) 16:40:27.98ID:bW5EQkS/0 多重ループ脱出で使っている人って多いんかな?
他にこういう使い方しているとかってない?
他にこういう使い方しているとかってない?
969はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 9b3e-g5YV)
2023/10/30(月) 16:45:14.84ID:I7fISnX+0 >>963
一般論としてはそのほうが分かりやすくなるからというだけのことだと思うよ。
ただ、それで分かりやすくならないとき、
チマチマした条件チェックであっちこっち行くよりは
流れをぶった切って goto したほうがいっそわかりやすいこともあるってのが
goto が必要な場面ってことなんだわ。
一般論としてはそのほうが分かりやすくなるからというだけのことだと思うよ。
ただ、それで分かりやすくならないとき、
チマチマした条件チェックであっちこっち行くよりは
流れをぶった切って goto したほうがいっそわかりやすいこともあるってのが
goto が必要な場面ってことなんだわ。
970デフォルトの名無しさん (ワッチョイ 8101-VINR)
2023/10/30(月) 17:14:03.48ID:hnsSyQft0 >>967
と言いますと?
と言いますと?
971デフォルトの名無しさん (ワッチョイ d9ab-txvC)
2023/10/30(月) 17:24:30.69ID:9eqG7NVC0 ラムダ式にする
972デフォルトの名無しさん (ワッチョイ 297c-tLJy)
2023/10/30(月) 17:57:47.45ID:eEth4IuV0 >>968
自分としては多重ループ脱出がC++でのgotoの唯一の実用的な用途だと思ってる(とはいえめったに使わない)
Cなら疑似finally的な後処理に使うこともあるけど、それはC++ならRAIIにすべきだしな
それ以外の戻ったり余所のスコープに侵入したりはもちろんCでもC++でも論外
自分としては多重ループ脱出がC++でのgotoの唯一の実用的な用途だと思ってる(とはいえめったに使わない)
Cなら疑似finally的な後処理に使うこともあるけど、それはC++ならRAIIにすべきだしな
それ以外の戻ったり余所のスコープに侵入したりはもちろんCでもC++でも論外
973デフォルトの名無しさん (ワッチョイ 8114-Qq8E)
2023/10/30(月) 18:39:22.51ID:VfsLhOLn0 何度も繰り返すgotoの話になると人が湧くな
974デフォルトの名無しさん (ワッチョイ 9b91-lnbO)
2023/10/30(月) 18:54:25.65ID:A0jdf3Dt0975デフォルトの名無しさん (ワッチョイ 5101-CP9B)
2023/10/30(月) 19:04:07.11ID:qWSrxYwr0 switchとgoto組み合わせて状態機械作ってる
976デフォルトの名無しさん (ワッチョイ 9b91-lnbO)
2023/10/30(月) 19:54:14.15ID:A0jdf3Dt0 gcc拡張のlabelのアドレスとれるやつとかな
昔はイキって使ってたわ
昔はイキって使ってたわ
977デフォルトの名無しさん (ワッチョイ 8101-jlrJ)
2023/10/30(月) 20:16:27.75ID:hnsSyQft0978デフォルトの名無しさん (ワッチョイ 9b91-lnbO)
2023/10/30(月) 20:43:41.27ID:A0jdf3Dt0979デフォルトの名無しさん (オイコラミネオ MM6d-H9h+)
2023/10/30(月) 20:48:14.67ID:JbGfWzUOM ループ脱出レベルで例外を使うのは変だと感じる
関数抜けないのに例外なんて…
関数抜けないのに例外なんて…
980デフォルトの名無しさん (オイコラミネオ MM6d-H9h+)
2023/10/30(月) 20:54:46.61ID:JbGfWzUOM んで大昔に例外に似た機能のFound文Match文とか妄想してたんだな
実質タダのgoto文
実質タダのgoto文
981デフォルトの名無しさん (ワッチョイ 8101-jlrJ)
2023/10/30(月) 20:54:46.86ID:hnsSyQft0982デフォルトの名無しさん (オイコラミネオ MM6d-H9h+)
2023/10/30(月) 20:57:56.27ID:JbGfWzUOM 例外は通常動作として起こらないような動作で起こすもので
何か探すループなんかで実際に対象が見つかったとしてそれは「例外」なのか?
ちがうだろー
何か探すループなんかで実際に対象が見つかったとしてそれは「例外」なのか?
ちがうだろー
983デフォルトの名無しさん (ワッチョイ 8101-jlrJ)
2023/10/30(月) 20:58:12.43ID:hnsSyQft0984デフォルトの名無しさん (ワッチョイ 8101-jlrJ)
2023/10/30(月) 20:59:51.11ID:hnsSyQft0 >>982
実にくだらない理由だと思う
実にくだらない理由だと思う
985デフォルトの名無しさん (オイコラミネオ MM6d-H9h+)
2023/10/30(月) 21:01:36.17ID:JbGfWzUOM >>984
それが一般的な解釈でおかしな使い方をしてる人間は影で笑われている
それが一般的な解釈でおかしな使い方をしてる人間は影で笑われている
986デフォルトの名無しさん (ワッチョイ 8101-jlrJ)
2023/10/30(月) 21:06:32.49ID:hnsSyQft0 >>985
人格を攻撃するような書き込みはやめようね
人格を攻撃するような書き込みはやめようね
987デフォルトの名無しさん (オイコラミネオ MM6d-H9h+)
2023/10/30(月) 21:07:29.46ID:JbGfWzUOM 例外はパフォーマンス的に重いしそれ以前に
正常系の出力を異常系で投げるのはおかしい
まったくもって異常
正常系の出力を異常系で投げるのはおかしい
まったくもって異常
988デフォルトの名無しさん (ワッチョイ 297c-tLJy)
2023/10/30(月) 21:08:57.30ID:eEth4IuV0 よその言語ではイテレータの終了通知に例外使ってたりするから人格否定するほどの話ではない
C++の慣用としてやられてないし向いてないってだけ
C++の慣用としてやられてないし向いてないってだけ
989デフォルトの名無しさん (オイコラミネオ MM6d-H9h+)
2023/10/30(月) 21:09:03.25ID:JbGfWzUOM990デフォルトの名無しさん (ワッチョイ 8101-jlrJ)
2023/10/30(月) 21:12:55.48ID:hnsSyQft0991デフォルトの名無しさん (ワッチョイ 8101-jlrJ)
2023/10/30(月) 21:14:51.99ID:hnsSyQft0992デフォルトの名無しさん (ワッチョイ 9b91-lnbO)
2023/10/30(月) 21:19:13.29ID:A0jdf3Dt0993デフォルトの名無しさん (オイコラミネオ MM6d-H9h+)
2023/10/30(月) 21:19:21.17ID:JbGfWzUOM 非常に大切で根本的な理由と例を挙げたのに「実にくだらない理由」としか取られないのが残念
例外はただの制御構文ではない
例外はただの制御構文ではない
994デフォルトの名無しさん (オイコラミネオ MM6d-H9h+)
2023/10/30(月) 21:20:50.60ID:JbGfWzUOM995デフォルトの名無しさん (ワッチョイ 1bda-9b8G)
2023/10/30(月) 21:22:28.46ID:J+/7yoK80 凶悪といえばAnsiCのsetjmp()とlongjmp()
あれらを規格に入れてるのはキチガイとしか
あれらを規格に入れてるのはキチガイとしか
996デフォルトの名無しさん (ワッチョイ 8101-jlrJ)
2023/10/30(月) 21:25:34.77ID:hnsSyQft0997デフォルトの名無しさん (オイコラミネオ MM6d-H9h+)
2023/10/30(月) 21:28:39.53ID:JbGfWzUOM >>996
概念だろ
それが一番大切で実装の基本だろ
C++自体の仕様が変わるとしても例外と言う概念に沿って変わることになるはずだ
今適当にマッチを投げていて仕様がより例外側に代わってその時その使い方は生き残れるのだろうか?
概念だろ
それが一番大切で実装の基本だろ
C++自体の仕様が変わるとしても例外と言う概念に沿って変わることになるはずだ
今適当にマッチを投げていて仕様がより例外側に代わってその時その使い方は生き残れるのだろうか?
998デフォルトの名無しさん (ワッチョイ 8101-jlrJ)
2023/10/30(月) 21:31:50.44ID:hnsSyQft0 >>997
templateメタプログラミングとか許せない人ですか?
templateメタプログラミングとか許せない人ですか?
999デフォルトの名無しさん (ワッチョイ d1ad-AT6i)
2023/10/31(火) 06:57:27.99ID:BIE3G76Q0 Core Guideline にも例外はエラー処理だけに使えとある.
多重ループからの脱出が本当にエラー処理なの?
多重ループからの脱出が本当にエラー処理なの?
1000デフォルトの名無しさん (ワッチョイ 1379-JwVi)
2023/10/31(火) 07:21:48.58ID:1/1CCAX60 質問いいっすか?
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 174日 19時間 30分 57秒
新しいスレッドを立ててください。
life time: 174日 19時間 30分 57秒
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- 習政権、高市首相への態度硬化 台湾有事発言で連日非難 中国 ★10 [ぐれ★]
- 【日本大使館】中国在留邦人は安全確保を [ぐれ★]
- 【外国人問題】小野田紀美担当相「不法就労や不法滞在は許さない」 [シャチ★]
- 【野球】井端監督 大谷翔平、山本由伸らのWBCへの参加 「1日も早く返事ほしい」「待っててといっても、国内組が遅くなってしまう」★3 [冬月記者★]
- 橋下徹氏 外務省幹部の訪中受け「口だけ番長」へ痛烈指摘 「喧嘩は日本の完敗…なんとかっこ悪い日本か」 [冬月記者★]
- 中国で「クレしん」公開延期 対日報復、エンタメに波及 [蚤の市★]
- 中国人「昔の仇を取る」「高市は狂ってる。制裁すればいい」「高市はことの重大さを認識してない」 [931948549]
- ニートしかいない時間ってマジでつまんないよな
- 小池百合子「キィィ…!なんでアタシより先に総理になってンのよ…あの女狐ッ!」
- 有識者「高市総理が発言を撤回したり、辞職するしかないと言っている人は、それで日中関係が今まで通りになると思ってる?」 [834922174]
- 【朗報】愛国烈士ほんこん、高市首相のために長文を投稿wwwwwwwwwwwww [834922174]
- カレーライスぐちゃぐちゃに混ぜる奴
