探検
0からの、超初心者C++相談室
レス数が1000を超えています。これ以上書き込みはできません。
1デフォルトの名無しさん
2018/11/12(月) 14:55:13.35ID:Tf74ZWQr 何にも知らない0からの出発、超初心者のためのC++相談室
987デフォルトの名無しさん
2025/04/28(月) 10:00:18.82ID:+jC2JIL+ 匿名クラスってCで言う構造体やん
988デフォルトの名無しさん
2025/04/28(月) 10:12:11.66ID:RRBAM2hD989はちみつ餃子 ◆8X2XSCHEME
2025/04/28(月) 12:35:00.60ID:clGXfLYj >>986
簡潔な回答としては「できない」ということになる。
関数ひとつで終わるような簡単なコールバックならラムダ式で渡せるように設計する。
もう少し複雑なものになると……式の中に定義を書けるのは見通しが悪いし、出来てしまう Java のほうが良くなさそう。
別の場所 (といっても直前で良いけれど) で定義すれば何も困らないよ。
質問の本筋ではないが気になる点として、
new で生成したものはどこかで delete しなきゃならないからそのコードだけから判断できる範囲ではなんだか筋が悪そうに見える。
つまりそもそも new する意味がないんじゃない? と思う。
簡潔な回答としては「できない」ということになる。
関数ひとつで終わるような簡単なコールバックならラムダ式で渡せるように設計する。
もう少し複雑なものになると……式の中に定義を書けるのは見通しが悪いし、出来てしまう Java のほうが良くなさそう。
別の場所 (といっても直前で良いけれど) で定義すれば何も困らないよ。
質問の本筋ではないが気になる点として、
new で生成したものはどこかで delete しなきゃならないからそのコードだけから判断できる範囲ではなんだか筋が悪そうに見える。
つまりそもそも new する意味がないんじゃない? と思う。
990デフォルトの名無しさん
2025/04/28(月) 13:12:28.38ID:PR6E6U1X991デフォルトの名無しさん
2025/05/02(金) 09:24:43.58ID:k5bGwZZ0 size_t を返す hoge.count() みたいなのがあって
for(int i = hoge.count(); --i >= 0){...} と描くと
型が違うって怒られるのですが
for(int i = (int)hoge.count(); --i >= 0){...}
for(unsigned long i = (unsigned long)hoge.count(); --i >= 0){...}
for(size_t i = hoge.count(); --i >= 0){...}
どれが正解?
for(int i = hoge.count(); --i >= 0){...} と描くと
型が違うって怒られるのですが
for(int i = (int)hoge.count(); --i >= 0){...}
for(unsigned long i = (unsigned long)hoge.count(); --i >= 0){...}
for(size_t i = hoge.count(); --i >= 0){...}
どれが正解?
993はちみつ餃子 ◆8X2XSCHEME
2025/05/02(金) 11:40:02.44ID:n0wyIh3y >>991
for 文の括弧の中はセミコロンで区切られた三つの節を持つ形式である必要があるが、二つの節しかないのが根本的な間違い。
そんでそれを脇に置くとして、ループカウンタ i が unsigned であるときに --i >= 0 という式で判定しようとするのが間違い。
0 以下になることはありえないのだから判定の意味がない。 (無限ループを意図したのでない限りは。)
整数を別の整数型に型変換したときに型変換後の型で表現可能な範囲の値であるならば同じ数値のままであることは保証されて何も問題はない。
逆に言えば扱う値の範囲次第では違う数値に変わったり未定義になったりすることがある。
hoge.count() が返す型が size_t なら最後まで size_t で扱うのが基本的には好ましい。
値が取りうる範囲を把握しているなら問題を起こさない範囲で適切に型変換するのはプログラマの裁量による。
状況によって判断するしかない。
for 文の括弧の中はセミコロンで区切られた三つの節を持つ形式である必要があるが、二つの節しかないのが根本的な間違い。
そんでそれを脇に置くとして、ループカウンタ i が unsigned であるときに --i >= 0 という式で判定しようとするのが間違い。
0 以下になることはありえないのだから判定の意味がない。 (無限ループを意図したのでない限りは。)
整数を別の整数型に型変換したときに型変換後の型で表現可能な範囲の値であるならば同じ数値のままであることは保証されて何も問題はない。
逆に言えば扱う値の範囲次第では違う数値に変わったり未定義になったりすることがある。
hoge.count() が返す型が size_t なら最後まで size_t で扱うのが基本的には好ましい。
値が取りうる範囲を把握しているなら問題を起こさない範囲で適切に型変換するのはプログラマの裁量による。
状況によって判断するしかない。
994デフォルトの名無しさん
2025/05/02(金) 12:05:12.81ID:b7t9YOim 我慢できなくなって説明しちゃうはちみつさん
995デフォルトの名無しさん
2025/05/02(金) 19:42:35.68ID:rPO248eK for(long long i = (long long)hoge.count(); --i >= 0; ){...}
996デフォルトの名無しさん
2025/05/04(日) 09:19:50.28ID:RkNPiBO2 Rust使えばもっと楽になるかと思いきや
面倒が増えただけだったでござる
面倒が増えただけだったでござる
997デフォルトの名無しさん
2025/05/04(日) 10:01:55.29ID:CPTw2I9A >size_t を返す hoge.count() みたいなのがあって
>for(int i = hoge.count(); --i >= 0){...}
Rustなら単に (0..hoge.count()).rev()
>for(int i = hoge.count(); --i >= 0){...}
Rustなら単に (0..hoge.count()).rev()
998はちみつ餃子 ◆8X2XSCHEME
2025/05/04(日) 11:51:46.75ID:w7r9Yiaa 全体としては Rust のほうがだいぶん楽だと思うけどなぁ。
好みや慣れの要素があるから単純には比較できないのだけれど。
好みや慣れの要素があるから単純には比較できないのだけれど。
999デフォルトの名無しさん
2025/05/04(日) 11:59:34.01ID:RkNPiBO2 はちみつさんもRust使ってるんだね
1000デフォルトの名無しさん
2025/05/04(日) 11:59:44.18ID:RkNPiBO2 かわいい
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 2364日 21時間 4分 32秒
新しいスレッドを立ててください。
life time: 2364日 21時間 4分 32秒
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- 「外国人はもう日本を選ばなくなる」経営者たちが抱く深刻な懸念 ベトナム人実習生なしでは「成り立たない街」…【多文化共生企画】★2 [少考さん★]
- 「外国人はもう日本を選ばなくなる」経営者たちが抱く深刻な懸念 ベトナム人実習生なしでは「成り立たない街」…【多文化共生企画】 [少考さん★]
- 【東京】わずか9平方メートル…都心に近い「極小」アパートが若者に人気 狭くても“住めば都” [煮卵★]
- 【△】コンビニの鮭おにぎり、価格にネット衝撃「ついに…」 驚き続々「これはキツい…」「日本人を殺しに来てる」 ★2 [ぐれ★]
- 上野動物園の双子パンダ、1月末に中国に返還へ 国内でパンダ不在に ★2 [蚤の市★]
- 【調査】“割り勘負け”がSNSで話題 お酒を飲まない人にとってどんな会計が理想? 「飲んだ人が多めに払う」よりも多かった回答とは [ぐれ★]
- NFL 2025/26 week15 part 3
- NFL 2025/26 week15 part 2
- 地方競馬実況87823
- 巨専】 2
- とらせん IP付き
- 競輪実況★1629 ゲロブスクソ雑魚蛯原
- 「結城友奈は勇者である」ってなんで過小評価されてるの? [148889311]
- 愛国者「731部隊のデマに反論したいが、歴史に詳しくない。誰か代わりに反論してほしい」 [834922174]
- 有名漫画家「差別するやつは、少なくとも正直者ではある。一方、「差別反対」を言うやつは大体嘘つき。」 [762037879]
- 【悲報】中国、建国5000年を信じない日本人にブチギレ。右翼「清の時代は含まないのが普通だろ」😨 [518915984]
- 【悲報】新宿駅の再開発、頓挫WWWWWWWWWWWWWWWW [253542839]
- 【年金支給日】今日は偶数月の15日だ❗うおおおおおおおおおお★2🏡
