C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。
前スレ
C++相談室 part147
https://mevius.5ch.net/test/read.cgi/tech/1576659413/
このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.105【環境依存OK】
http://mevius.5ch.net/test/read.cgi/tech/1556142878/
■長いソースを貼るときはここへ。■
http://codepad.org/
https://ideone.com/
[C++ FAQ]
https://isocpp.org/wiki/faq/
http://www.bohyoh.com/CandCPP/FAQ/ (日本語)
探検
C++相談室 part148
■ このスレッドは過去ログ倉庫に格納されています
2020/01/31(金) 20:54:06.26ID:Nt0XFA2s
2デフォルトの名無しさん
2020/01/31(金) 21:08:18.93ID:88e+X9K2 >>2
2get乙。
2get乙。
2020/01/31(金) 21:13:28.27ID:70BTs5bI
前スレの>1000は有能
4デフォルトの名無しさん
2020/01/31(金) 21:28:55.62ID:88e+X9K2 >>1
1get乙。
1get乙。
2020/01/31(金) 21:32:42.96ID:aVH6lH01
gotoの話でもするか? それともマクロ? ハード絡みのところなんか俺的にはオモロイが
2020/01/31(金) 21:35:23.06ID:yrj+fbAX
前スレ999だけと循環してないよ
仮想アドレス使ったら必ずページフォルトするわけじゃない
MMUの仕組みわかってる?
仮想アドレス使ったら必ずページフォルトするわけじゃない
MMUの仕組みわかってる?
2020/01/31(金) 21:47:35.65ID:aVH6lH01
こらこら、前スレ999は俺だぞ
なりすましすんなカス
なりすましすんなカス
8デフォルトの名無しさん
2020/01/31(金) 21:48:10.26ID:88e+X9K2 https://ja.cppreference.com/w/cpp/io/ios_base/sync_with_stdio
これ使うとだいぶ早くなるらしいですよ。
これ使うとだいぶ早くなるらしいですよ。
9デフォルトの名無しさん
2020/01/31(金) 21:48:37.69ID:88e+X9K2 じゃあ俺も前スレ999です。
2020/01/31(金) 21:59:36.62ID:yrj+fbAX
2020/01/31(金) 22:13:11.58ID:HzrC4w9c
環境を限定しないならこれ以上続けても無駄
全ての環境を知ってるヤツでない限り
全ての環境を知ってるヤツでない限り
12デフォルトの名無しさん
2020/01/31(金) 22:16:13.72ID:88e+X9K2 すべての環境を知っている。
2020/01/31(金) 22:50:18.80ID:aVH6lH01
>>10
全然わかんねえ! 何言ってんの?
全然わかんねえ! 何言ってんの?
14デフォルトの名無しさん
2020/01/31(金) 22:56:57.70ID:88e+X9K2 >>13
俺はわかった。
俺はわかった。
2020/01/31(金) 22:58:17.72ID:yrj+fbAX
>>13
どこが循環してるか言ってみなよ
どこが循環してるか言ってみなよ
16蟻人間 ◆T6xkBnTXz7B0
2020/01/31(金) 23:38:50.35ID:r/XM8LG1 struct AutoDeleteFile {
const WCHAR *m_file;
AutoDeleteFile(const WCHAR *file) : m_file(file) { }
~AutoDeleteFile()
{ DeleteFileW(m_file); }
};
const WCHAR *m_file;
AutoDeleteFile(const WCHAR *file) : m_file(file) { }
~AutoDeleteFile()
{ DeleteFileW(m_file); }
};
2020/01/31(金) 23:42:29.75ID:wt6xD5wE
それではおじいちゃんのaddress談義
続きをどうぞ
続きをどうぞ
2020/01/31(金) 23:56:13.21ID:v4E0eL1J
ともかく最初に思ってることがあって
要は荒らしてやろうと
今回は結構うまくいった方かな
この前は
「std::deque には begin() end() clear() があるのに
std::queue と std::stack にそれらが無いのは何故?
有ったほうが便利なのでは?」
って質問で大分いい感じにスレを流した
そら、有ったほうが便利に違いないし、無いことに合理的な理由など無いわけだから荒れる
そういう、荒れそうなネタ考えるのに毎回結構頭使う
ただ、ちょっと前の goto のやつ、あれはダメ
初心者がワーワー騒いでるだけで、ほとんどのベテラン連中は静観してたと思う
俺の狙いはそれじゃない
あと、妹大好きです
要は荒らしてやろうと
今回は結構うまくいった方かな
この前は
「std::deque には begin() end() clear() があるのに
std::queue と std::stack にそれらが無いのは何故?
有ったほうが便利なのでは?」
って質問で大分いい感じにスレを流した
そら、有ったほうが便利に違いないし、無いことに合理的な理由など無いわけだから荒れる
そういう、荒れそうなネタ考えるのに毎回結構頭使う
ただ、ちょっと前の goto のやつ、あれはダメ
初心者がワーワー騒いでるだけで、ほとんどのベテラン連中は静観してたと思う
俺の狙いはそれじゃない
あと、妹大好きです
2020/01/31(金) 23:56:45.81ID:v4E0eL1J
まぁ、もうすぐID変わるからね
2020/02/01(土) 00:02:42.91ID:9soosqUN
ネタばらし興醒めだな
C++erそうゆうとこだぞ
C++erそうゆうとこだぞ
21デフォルトの名無しさん
2020/02/01(土) 00:03:19.42ID:K9hiSYW1 なんだと!
22蟻人間 ◆T6xkBnTXz7B0
2020/02/01(土) 00:05:22.38ID:l1s2tvQy 何か難しそうなC++コード、ここに貼ってくれよ。
2020/02/01(土) 00:37:10.49ID:pUJoLXPw
はいはい狙った通りになった宣言ねw
2020/02/01(土) 00:41:09.21ID:P+PaZ5tD
全然荒れずにコテンパンにのされてたじゃん
25デフォルトの名無しさん
2020/02/01(土) 00:44:51.53ID:K9hiSYW1 でも、もともと主張がおかしかったから、釣りだったのはホントじゃないの。
2020/02/01(土) 00:49:11.46ID:pUJoLXPw
釣りっていうかただの構ってちゃんな。何か深い考えがあるというわけでもないし。
27デフォルトの名無しさん
2020/02/01(土) 00:49:56.15ID:K9hiSYW1 釣りじゃなかったら相当痛い人だし。
釣りならちょっと痛い人で済むよ。
釣りならちょっと痛い人で済むよ。
28デフォルトの名無しさん
2020/02/01(土) 00:52:13.74ID:K9hiSYW1 ところで僕は自分の職業の板ってまったく見ないんだけど。
ここは職業プログラマが多いの?
ここは職業プログラマが多いの?
29デフォルトの名無しさん
2020/02/01(土) 00:53:02.37ID:K9hiSYW1 なんで見ないかというと得るものが全くないから。
2020/02/01(土) 01:09:30.45ID:50MDw/OE
goto ふとん;
2020/02/01(土) 02:05:11.46ID:efnE+DyP
わしも見ない
あそこは仕事のグチを書きこむとこやん
こっちは言語仕様のグチを書きこむとこや
あそこは仕事のグチを書きこむとこやん
こっちは言語仕様のグチを書きこむとこや
2020/02/01(土) 02:37:59.97ID:tav2AwxI
break break;
bresk break break;
break continue;
こんな書き方ができたら嬉しい?
bresk break break;
break continue;
こんな書き方ができたら嬉しい?
2020/02/01(土) 09:17:35.95ID:9lmFlpKY
export importよりひどいw
2020/02/01(土) 10:06:12.21ID:+WgC03YT
途中friskみたいのも混じってるしな
36デフォルトの名無しさん
2020/02/01(土) 10:19:22.01ID:Bc9LjLbW ネアンデルタール人はホモサピエンスの基底クラスであったか。
ネアンデルタール人のDNA、アフリカの現生人類からも検出 新研究
https://www.cnn.co.jp/fringe/35148770.html
2020.01.31 Fri posted at 13:15 JST
ネアンデルタール人のDNA、アフリカの現生人類からも検出 新研究
https://www.cnn.co.jp/fringe/35148770.html
2020.01.31 Fri posted at 13:15 JST
2020/02/01(土) 11:58:10.08ID:YFAnTUnh
多重ループを抜ける方法
ループに名前は名前を考えるのがイヤ
break [数字] は数えるのがイヤ
関数を分けてreturn はもっとイヤ
変数を使ってbreakで抜けるのは論外
でもgotoはなんとなくイヤ
全ての要望に答えたのが >>32
ループに名前は名前を考えるのがイヤ
break [数字] は数えるのがイヤ
関数を分けてreturn はもっとイヤ
変数を使ってbreakで抜けるのは論外
でもgotoはなんとなくイヤ
全ての要望に答えたのが >>32
2020/02/01(土) 12:17:12.69ID:pUJoLXPw
バカの要望を聞いてさらにロクでもない方向に行ってしまうっていう
わかりやすい例を提供してくれてありがとう。
わかりやすい例を提供してくれてありがとう。
2020/02/01(土) 12:30:47.94ID:+WgC03YT
多重ループにする設計が悪い
2020/02/01(土) 12:31:58.09ID:YFAnTUnh
ん?
皮肉のつもりで書いたんだけど
真面目な書き込みととらえられるとは思わなかった
皮肉のつもりで書いたんだけど
真面目な書き込みととらえられるとは思わなかった
2020/02/01(土) 12:34:39.38ID:YFAnTUnh
主に>>39みたいなアホに対する皮肉
2020/02/01(土) 12:40:18.47ID:+WgC03YT
は?オメェだろアホ
2020/02/01(土) 12:41:53.34ID:pUJoLXPw
あえて説明してるところで恥ずかしいことになってる奴w
2020/02/01(土) 13:00:03.90ID:TULylXcw
>>37
おれはおもしろいアイデアと思う
他に考えるとしたら
やはり名前があった方が変更に強いと思うのでその線でいくと
大抵ループにはイテレータやカウンタが紐づいてるから
それを使って
for (auto& x : なんとか) {
for (auto& y : なんとか) {
.break x;
}
}
とかどうだろ?
for以外で使えないしforでも宣言空だとだめだけど
頻繁に使うわけじゃないだろうから妥協できるかなと
おれはおもしろいアイデアと思う
他に考えるとしたら
やはり名前があった方が変更に強いと思うのでその線でいくと
大抵ループにはイテレータやカウンタが紐づいてるから
それを使って
for (auto& x : なんとか) {
for (auto& y : なんとか) {
.break x;
}
}
とかどうだろ?
for以外で使えないしforでも宣言空だとだめだけど
頻繁に使うわけじゃないだろうから妥協できるかなと
2020/02/01(土) 13:02:13.36ID:YFAnTUnh
BASIC
2020/02/01(土) 13:03:32.19ID:+WgC03YT
なにそのセンスの欠片もない気持ち悪いコード
47デフォルトの名無しさん
2020/02/01(土) 13:19:23.65ID:fiLTG5Nb while(){} や do{}while(); で使えないので却下
2020/02/01(土) 15:04:44.31ID:7G0Z2VlM
for(int x = 0; i < ... )
{
int y = 0;
LOOP:
a[x][y]...
++y;
if(...){ break; /*多重ループ脱出*/ }
goto LOOP;
}
{
int y = 0;
LOOP:
a[x][y]...
++y;
if(...){ break; /*多重ループ脱出*/ }
goto LOOP;
}
2020/02/01(土) 16:42:25.84ID:hd+by06W
2020/02/01(土) 17:21:08.52ID:9BMLg08w
2020/02/01(土) 17:34:30.73ID:pUJoLXPw
こういうしょーもないシンタックスの話って馬鹿でもしやすいのが盛り上がる理由なんだろうな。
2020/02/01(土) 17:48:52.85ID:YFAnTUnh
特定の言語のスレ
シンタックスを語らずに何を語る?
シンタックスを語らずに何を語る?
2020/02/01(土) 17:51:10.61ID:YFAnTUnh
>>50
じゃあそれで
じゃあそれで
2020/02/01(土) 17:55:08.95ID:YFAnTUnh
break 9;
を数えたく無いとか言ってたヤツがいたけど
そういう時は素直にgotoを使えば良い
を数えたく無いとか言ってたヤツがいたけど
そういう時は素直にgotoを使えば良い
2020/02/01(土) 17:55:47.26ID:rsRLlL5x
てか継続が欲しい
56はちみつ餃子 ◆8X2XSCHEME
2020/02/01(土) 18:08:11.40ID:6nnXKMBq >>55
C++ ではオブジェクトの寿命の管理と辻褄を合わせなきゃならないんだから full continuation は無理だぞ。
C++ ではオブジェクトの寿命の管理と辻褄を合わせなきゃならないんだから full continuation は無理だぞ。
2020/02/01(土) 18:09:32.76ID:YFAnTUnh
継続とは?
2020/02/01(土) 18:12:05.70ID:YFAnTUnh
setjmp のことか
59デフォルトの名無しさん
2020/02/01(土) 18:12:34.25ID:Bc9LjLbW ループに名前を付け、その名前で離脱や継続を行う。
ループA {
ループA {
60デフォルトの名無しさん
2020/02/01(土) 18:16:20.88ID:Bc9LjLbW 途中で送信してしまった。面倒だから書き直さないが、
breakやcontinueはキーワードが紛らわしいのでPerlのlastとnextを拝借する。
last ループA; とか next ループA; みたいな感じ。
breakやcontinueはキーワードが紛らわしいのでPerlのlastとnextを拝借する。
last ループA; とか next ループA; みたいな感じ。
2020/02/01(土) 18:16:45.14ID:YFAnTUnh
わざわざ名前を付けるならgotoで良いんでは?
2020/02/01(土) 18:18:49.32ID:vKrtBnhX
gcc5ぐらいから一気にgcc10にしたらエラー表示とかデフォルトの警告とか色々変わっててわろた
63デフォルトの名無しさん
2020/02/01(土) 18:19:46.95ID:Bc9LjLbW >>61
まあね。だけどgotoはフリーダムすぎて良くないでしょ。
まあね。だけどgotoはフリーダムすぎて良くないでしょ。
2020/02/01(土) 18:34:11.57ID:YFAnTUnh
いや全然そう思わない
gotoで何か不都合がある?
gotoで何か不都合がある?
2020/02/01(土) 18:52:41.69ID:pUJoLXPw
>>52
コンパイラ毎の最適化における癖とか、例外の実装についての差異なんかも語ってもいいんだぞ。
コンパイラ毎の最適化における癖とか、例外の実装についての差異なんかも語ってもいいんだぞ。
66はちみつ餃子 ◆8X2XSCHEME
2020/02/01(土) 18:56:33.52ID:6nnXKMBq >>63
goto は自由すぎるけども、ループを何段階も一気に抜けたいとかいう状況がすでにだいぶん自由だと思うぞ。
そういう状況が生まれたらもう駄目なんだよ。
ごちゃごちゃとした使い分けを考えるよりおとなしく goto した方が「そこが悪い」ってのが目立って良い。
goto は自由すぎるけども、ループを何段階も一気に抜けたいとかいう状況がすでにだいぶん自由だと思うぞ。
そういう状況が生まれたらもう駄目なんだよ。
ごちゃごちゃとした使い分けを考えるよりおとなしく goto した方が「そこが悪い」ってのが目立って良い。
2020/02/01(土) 19:01:47.00ID:YFAnTUnh
一番使いたいのは2段break
行列や画像など2次元構造では当たり前のように2重ループになる
2重ループを抜けたい状況は設計が悪い
と思う感覚が全く理解できない
行列や画像など2次元構造では当たり前のように2重ループになる
2重ループを抜けたい状況は設計が悪い
と思う感覚が全く理解できない
2020/02/01(土) 19:01:49.68ID:TULylXcw
構造化を壊さないことを保証した仕組みで脱出したいってことでしょ
2020/02/01(土) 19:04:12.92ID:YFAnTUnh
2次元構造の2個のループを抜ける為に
非常に関連のある2個のループを別関数に分ける
この方が設計が悪い
というのがおれの感覚
非常に関連のある2個のループを別関数に分ける
この方が設計が悪い
というのがおれの感覚
2020/02/01(土) 19:07:14.52ID:JWECbGc7
>>67
gotoは悪、多重ループは悪、みたいなどこかで聞いたルールを杓子定規に常に遵守すべき絶対ルールのように考える人が少なからずいるんだろうね。声が大きいだけかもしれないけど。
gotoは悪、多重ループは悪、みたいなどこかで聞いたルールを杓子定規に常に遵守すべき絶対ルールのように考える人が少なからずいるんだろうね。声が大きいだけかもしれないけど。
2020/02/01(土) 19:09:12.42ID:PjJtYhAX
gotoの利用にコンパイラの補佐があればよかったのに
2020/02/01(土) 19:10:50.63ID:PjJtYhAX
中カッコ、変数の有効範囲含め
スコープ内に飛び込むジャンプを一切禁止、前方のみと決めれば
なかなか直観的でわかりやすいキーワード
だとおもうのに
スコープ内に飛び込むジャンプを一切禁止、前方のみと決めれば
なかなか直観的でわかりやすいキーワード
だとおもうのに
2020/02/01(土) 19:19:24.65ID:YFAnTUnh
一切禁止とか言うから
それが絶対だと初心者が思って思考停止する
この典型がgoto
使った方が良い時は使う
再帰も生ポもグローバル変数も多重継承も多重ループも
それが絶対だと初心者が思って思考停止する
この典型がgoto
使った方が良い時は使う
再帰も生ポもグローバル変数も多重継承も多重ループも
74はちみつ餃子 ◆8X2XSCHEME
2020/02/01(土) 19:25:00.72ID:6nnXKMBq >>67
ここでワイが「悪い」って言ってるのは使うなとか別の方法がとれるとかいうほどの強い意味じゃなくてさ、
気を付けなきゃならないポイントとして目立ってもらわなきゃ困るって程度の意味。
だけど、日常的にそこら中でそういうポイントがあるのならやっぱり悪いとは思うけど……。
ここでワイが「悪い」って言ってるのは使うなとか別の方法がとれるとかいうほどの強い意味じゃなくてさ、
気を付けなきゃならないポイントとして目立ってもらわなきゃ困るって程度の意味。
だけど、日常的にそこら中でそういうポイントがあるのならやっぱり悪いとは思うけど……。
2020/02/01(土) 19:26:16.45ID:j/qpVk5O
二重ループの脱出は
[&]{
for(){
for(){
return;
}
}}();
で結論出たはずだが
[&]{
for(){
for(){
return;
}
}}();
で結論出たはずだが
■ このスレッドは過去ログ倉庫に格納されています
