C++相談室 part146

■ このスレッドは過去ログ倉庫に格納されています
2019/11/07(木) 11:35:36.76ID:4wggfTwe
C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。

前スレ
C++相談室 part145
http://mevius.5ch.net/test/read.cgi/tech/1568362404/

このスレもよろしくね。
【初心者歓迎】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/ (日本語)
2019/12/03(火) 19:55:41.70ID:PvjGA/Sr
>>518
そういう意味で言ったんじゃないんだが

>>519
>けっ 言語についていけねえうえに
>ろくな業績も出せてねえ
こういう前提はどっから来てんのかね
>>502,506 ,512みたいなことを言われるとそういう過剰反応するやつよく見かけるけど
>精一杯のブラフで自我を保とうと必死こく
>究極にくだらねえ茶番だろうが
鏡見た方がいいよ
2019/12/03(火) 21:01:44.02ID:z2MNOJTT
>>524
違うんなら証拠出してみろよ
言ってることが薄っぺらくてゴミクズにしか見えねえが
そういう俺にお見それしましたと言わしめる内容がおまえにあるか?

身バレするようなことでなくて結構だ
話している内容に深みを感じるかどうかだ
もう一度言う、おまえの言葉にはそれがまるでない
2019/12/03(火) 21:24:21.32ID:qY14OTyg
>>524
> そういう意味で言ったんじゃないんだが
意味わからん
本を出してるって言うなら具体的に挙げられるよね?
2019/12/03(火) 21:26:06.12ID:A/ggV3OU
おまいらスレタイ
2019/12/03(火) 21:30:25.58ID:3WzRY7Z3
実にC++erらしいこのスレにぴったりの会話だな
2019/12/03(火) 21:58:21.97ID:c+vMaKjo
>>525
お前も感情的に攻撃的に相手を罵ってるだけで、中身空っぽに見えるぞ。
お前の自己評価はもっと高いのかもしれないけど端から見たらただのバカだよ。
2019/12/03(火) 22:13:59.08ID:z2MNOJTT
>>529
おまえ誰?
2019/12/03(火) 22:43:52.58ID:Tjb84Rtt
「現場でガリガリ」って可愛い表現だなw
アマチュア精神がにじみ出てる
2019/12/03(火) 23:17:48.08ID:jKB+EPlO
禿禿言うなよ
気にしてるらしいぞ
2019/12/03(火) 23:39:54.64ID:l6CFXVtO
お前らがC++高等テクニックww持ってるのは分かったから
まずまともな設計上げてこいやww
2019/12/03(火) 23:42:10.99ID:3WzRY7Z3
経験マウント vs 知識マウント

実に人格障害のC++erらしいスレだ
2019/12/04(水) 01:05:50.07ID:FhHmXOPx
知識も経験も豊富な奴おらんのか?
2019/12/04(水) 01:18:20.24ID:MnUOTj8y
>>535
多分、C++の仕様が異常なほど膨れ上がってること、JavaScriptやWebGL、
AjaxやC#なども勉強しなくてはならない事が多くなったことなどもあって、
プログラムを沢山しながら仕様にも詳しい人は壊滅状態であることは想像に難くない。
2019/12/04(水) 01:23:07.75ID:MnUOTj8y
>>536
というか、普通にプログラムしていても、HTML、CSS、HTTP などの仕様はもちろん
のこと、Androidやるなら、Java、Kotlin、NDK、iOSやるならSwift、
それに加えて、C#なら、WinFoms、WPFなどもあり、さらに、WSL、
PowerShellにbashやApacheの設定方法、ライセンス各種の勉強などなど、
やることが多くなってきている。本当は、React、Blazor、Vue.js、node.js
Electron、flutter、wxWidget、Qt、GTK。別に全部やる必要はないが、
予備知識として知ってないと技術資料も理解しにくいことが多くなってきた。
2019/12/04(水) 01:25:21.34ID:FhHmXOPx
自分の得意分野以外は浅く予習しておいて使うときになって覚えて使わなくなったら忘れてる
2019/12/04(水) 01:26:04.91ID:MnUOTj8y
>>537
Python、Rust、Lua、curl、ant、gradle、git、github、wget なども知ってない
と話が理解できないことも多くなっている。
2019/12/04(水) 01:31:31.51ID:gHx24DkE
今時コードだけでプログラミングするもんでもあるまい
C++使いならフロントはばっさり切り捨ててAWSとGCPにスキルを振ったほうが一貫性があり無駄の少ないスキルセットになる
2019/12/04(水) 01:36:36.01ID:4dvDh/Ut
std::cout での出力フォーマット指定に関して教えてください。

cout.flag( ios::uppercase | ios::hex ) やら cout << setfill('0') とか
cout << scientific << setprecision(10) とかとか
大半の指定が 1回 数値 を出力した後も その状態が保持されたままなのに
cout << setw(24) による出力幅指定は その都度指定しないと忘れてしまう挙動になっています。

その都度指定する必要は他にもあるのか。それと、
http://www.cplusplus.com/reference/iomanip/setw/
みたいな仕様を見て、どう読み取ればそれが正しい挙動であると分かるのか教えてほしいです。
ある個人ブログには setfill も毎回出力する度に指定する必要があるのだと書かれていましたが、
自分の環境では setfill は状態が保持されました。
2019/12/04(水) 01:41:33.70ID:9acC9vOn
フロントエンドは本当に時間の無駄
ましてC++プログラマならほとんど領域が被らないから単なる二足のわらじ状態で非効率なだけ
2019/12/04(水) 04:32:29.80ID:mZNCV5xz
>>529
読解力が無いのか>>508と同じく言語オタクだから気づかないのかわからんが
>>508
>>512-513読み直してくれる?
C++の言語仕様を詳しく解説する本を、コンパイラ”以外の開発に携わってる”人間が書いてくれると
思ってる方がおかしいんだよ
>>508の目には純粋にC++関連の本しか映ってないんだろう
C++を前提としてるがC++そのものでなくその分野の専門的な知識を教えてる技術書がどれだけあると思ってんだ
2019/12/04(水) 04:32:49.61ID:mZNCV5xz
>>525
>えっ、ブラック労働環境で疲弊してて書く余裕がないって?w
こんな腐りきった発言する思い上がったゴミアマチュアに教えてやることなど何もない
お前が使ってるその箱で動いてるソフトは誰が書いてくれてると思ってんだ
545543
垢版 |
2019/12/04(水) 06:39:12.18ID:mZNCV5xz
安価ミス
X >>529
>>526
2019/12/04(水) 07:09:58.31ID:Z3kanSY4
>>536
うん、想像なら只だもんな
2019/12/04(水) 07:33:04.63ID:8KgKER1O
そもそも現場の奴らは、現場のやり方しか身につける必要ないだろw
2019/12/04(水) 07:54:48.53ID:Jd4YzzOQ
>>545
各分野にコンパイラ開発は入らんのか?
まあお前の好きな分野でいいから具体的な本の名前挙げてくれ
2019/12/04(水) 08:05:44.23ID:mZNCV5xz
>>548
挙げたらどうなんの?お前には興味ない内容だと思うけど
「ド素人が言ってんだろ」と思ってるんだろうけど、お前の誤解を晴らすためになんで自分の分野晒さなきゃいけないの?
本の名前挙げたら謝るの?
2019/12/04(水) 08:06:15.64ID:mZNCV5xz
>>546
実際そうだと思うよ
>>512にも書いたけど、仕事でやってる人もフリーソフト開発者も
規格読んだことある人なんか皆無だと思うよ
他に勉強しなきゃいけないこと山ほどあるし、仕様(新しいのも含め)は必要なときにググって確認するだけ(>>538も言ってるけど)、むしろそうであるべき

それを「言語についていけない」なんて貶せるやつの神経がわからん
>>519とか、ソフト開発もメタプログラミングも出来ないレベルのド素人だろ?
何調子乗ってんの?自分はついていけてんの?w

開発力も無いし言語を活かせてもないのに、実際にC++を実用してる人を貶すとか
頭おかしい真似してるから言語オタクって言われるんだよ
(C++専門のライターも最近そういう傾向あるけど)

>>547
それはそれでどうかと思うけど
2019/12/04(水) 08:07:22.17ID:uB21TJa6
>>541 直接的な回答でない上に長々しい文章で気が引けるけど…。

『プログラミング言語C++』第4版の38章「入出力ストリーム」で
「width(n)の呼出しは、その直後に行われる<<による出力だけに影響を与える」
と書いてあるね(p. 1094)。
setw() は「次の出力のフィールド幅をn文字とする」(p. 1096 の下の表)
表の説明で“次の出力の”と限定されてるのはsetw()だけ。

で、一般的に書式指定やマニピュレータのうち、
どれが「一度指定したら別の指定をするまで有効」で、
どれが「指定された次の出力だけ有効、その後デフォルト状態に戻る」なのか、
N3337 の 27.5.3.2 周辺を見ても分からなかった。
基本的には ttp://www.cplusplus.com/reference/iomanip/setw/ よりも
少ない記述内容だし、「この指定は直後の一回の出力に限り有効」みたいな
補足の説明も見当たらない。


ISOやJISの規格に詳しい人が「素人め、ここに載ってるんだよ」と
ズバリ指摘してくれるのを期待して、調べた限りを投稿してみた。
2019/12/04(水) 08:21:05.72ID:Jd4YzzOQ
>>549
他の分野の人にどういう説明してるのかを知りたかっただけなんだけどね
まあ>>525が言うように薄っぺらな知ったかが吠えてるだけってわかったからもういいやw
2019/12/04(水) 08:24:57.77ID:uB21TJa6
>>541
setfill() じゃなくて setw() の話だけど、古い本に
「setw()の幅指定は、永続的に有効な実装と、直後の出力1回だけ有効な実装との
両方が存在するので、移植性を考えれば毎回指定する方が安全」とか載ってた。
もしかすると過去には「setfill() は1回だけ有効」な実装が存在したのかも知れん。

その後、規格で挙動が厳密に定められたのか、
今でも実装によって動作が違っても構わない(規格に明記されていない)のか、
肝心なその点は分からん。
554549
垢版 |
2019/12/04(水) 08:41:52.15ID:0MJ4ry5i
>>552
言ってる意味がわからんが
煽れば何か教えてもらえると思ってるアホだろ
今までお前に何度も言ったと思うが、邪魔だから出てってくれ
2019/12/04(水) 08:46:18.46ID:Z3kanSY4
>>550
他に勉強しなきゃいけないことって具体的に何だ?
インターフェースだの通信規約だの法務だのを
規格を避けて勉強なんかできるのか?
そういうおまえ自身は本当に勉強してるのか?
2019/12/04(水) 08:48:00.43ID:6WV7ZyL7
>>555
一連の流れ読んでから言えよ
C++の規格や仕様の話だボケ
2019/12/04(水) 09:05:20.91ID:Z3kanSY4
>>556
おまえこそどーに目ぇつけとんのやあんだら
C++以外の規格なら読むんだって話じゃねえだろうがよ
2019/12/04(水) 09:08:12.84ID:d8r3fnrq
>>557
>C++以外の規格なら読む
誰がそんなこと言った?
他に勉強しなきゃいけないこと、に含まれてるだろうが
自分の勘違い棚に上げるなよ
2019/12/04(水) 09:15:53.35ID:Z3kanSY4
>>557
550は規格を読んだことがあるやつは皆無と言ったんだよ
それがC++だけにせよ規格全てにせよ
おかしい主張であることに変わりはない

自分の発言を読み返してみな
俺がわざわざ頓珍漢とか言ってやることもない
2019/12/04(水) 09:16:34.99ID:Z3kanSY4
安価ミスった
558な
561554=556=558
垢版 |
2019/12/04(水) 09:32:28.38ID:mZNCV5xz
お前はC++の標準ライブラリ等の仕様の確認に毎回規格書読んでんの?
2019/12/04(水) 09:53:35.71ID:4dvDh/Ut
>>551, >>553 ありがとうございます。
今「C++ポケットリファレンス」を見たら

ほかのマニピュレータと異なり、std:setw()は例外的に効果が持続しません。
一度std::setw を指定した出力が行われると効果は解除されます
(std::setw(0)を呼び出した状態になります)。

とありました (p.250)。
それと...
$ man std::setw

The width property of the stream will be reset to zero (meaning "unspecified") if 〜

ちゃんと書いてますね。何より先に man を見るべきでした。
とはいえ setw は "例外的" なのだとちゃんと教えてくれる本は助かるなあと思いました。
2019/12/04(水) 10:10:41.87ID:4dvDh/Ut
それから man の最後には http://cppreference.com へのリンクがありました。
あまり www.cplusplus.com との違いを意識した事はなかったのですが、
公式仕様として参照するべきなのはそっちのようですね。

同じ内容の日本語版は
https://ja.cppreference.com/w/cpp/io/manip/setw
で見れました。
564デフォルトの名無しさん
垢版 |
2019/12/04(水) 10:52:51.16ID:vhuKISsK
規格確認部とかあるんじゃないの。
知らんけど。
2019/12/04(水) 10:57:38.20ID:Z3kanSY4
>>561
え? ・・・そうだけど?
規格票というか、正確にはドラフトな
何かおかしいか?
2019/12/04(水) 11:17:13.05ID:mZNCV5xz
それ無駄に時間かかってるんじゃないの
よくクビにならないな
567デフォルトの名無しさん
垢版 |
2019/12/04(水) 11:19:22.93ID:sb3P/SSe
1.禿でも判るC++入門
2.判ると禿げるC++入門
3.禿専用C++
2019/12/04(水) 12:23:43.29ID:Jd4YzzOQ
>>554
煽る以前に>>513からはペラッペラの内容しかでてこないことはわかったからお前が出てけよw
2019/12/04(水) 12:29:09.42ID:Jd4YzzOQ
>>561
必要なら読むだろ
流石に毎回じゃないけど
そもそもお前は規格も読まないでテキトーにコード書いてるのか?
2019/12/04(水) 12:36:02.75ID:mZNCV5xz
>>569
>流石に毎回じゃないけど
なら黙ってろ

規格の原文読まない=テキトーにコード書く、なのかお前の中では
思い上がりすぎだろ
2019/12/04(水) 12:48:55.97ID:Z3kanSY4
いや、きちんと仕事したくて
伝聞に頼らず一次ソースを確認するんだよ
572デフォルトの名無しさん
垢版 |
2019/12/04(水) 12:53:29.05ID:sb3P/SSe
実用コード書くより机上の空仕様書描くのが好きな人なんやろな
2019/12/04(水) 13:03:10.48ID:Jd4YzzOQ
>>570
> 規格読んだことある人なんか皆無だと思うよ
とか言うバカに言われてもなぁ
知識がペラッペラすぎるw
2019/12/04(水) 13:09:39.95ID:6uL3pMIB
おまいらスレタイ
2019/12/04(水) 13:17:06.83ID:mquXx5f5
みんな私のために争って!
2019/12/04(水) 13:19:26.79ID:mZNCV5xz
「きちんと仕事したくて伝聞に頼らず一次ソースを確認」
なんか胡散臭くなってきたな・・・・
「仕事でやってる人もフリーソフト開発者も」のどちらにも当てはまらないのに噛み付いてきたんだろうな
エアプログラマの相手してスレ無駄遣いした、すまんかった
2019/12/04(水) 13:20:38.21ID:6uL3pMIB
ソフトエンジニアでC++の規格書を読む人なんてほとんどいないよ
そんなのを読んでも良い設計にはつながらない
2019/12/04(水) 13:23:39.63ID:6uL3pMIB
規格書で確認しないと書けない/読めないようなコードは
基本的には悪いコード
579デフォルトの名無しさん
垢版 |
2019/12/04(水) 13:26:15.79ID:sb3P/SSe
ゴールポスト移動中ですね判ります
2019/12/04(水) 13:27:52.48ID:Z3kanSY4
規格書ではなく規格票な
つまらん齟齬を避けたいのも
規格票を読む目的の1つだ
2019/12/04(水) 13:42:20.48ID:MnUOTj8y
>>578
でも最近、特に海外の方で自分が知っている素朴な C++ とは全く違う
書き方をしている C++ コードを良く見かけるようになったので、
新しい仕様を学ばないと理解できなくなってきた。
STLを深く使うと C++ とは思えないようなコードになるので。
2019/12/04(水) 13:46:18.71ID:P3QxjggL
フロント周りは全くついていけない
コロコロと次から次へ節操なく移り変わって馬鹿じゃねえの、とつい老害的思考に
2019/12/04(水) 13:48:46.17ID:rFzpkzsp
C++20でコンセプトやモジュールやコルーチン記法が入ってきたら、そういう古兵にはもはやC++には見えんだろうなぁw
584デフォルトの名無しさん
垢版 |
2019/12/04(水) 13:49:01.49ID:sb3P/SSe
CUIのフロントはTurboC++だったな
2019/12/04(水) 14:25:33.26ID:33/nOLSe
C++で音鳴らせるようになるの?
586デフォルトの名無しさん
垢版 |
2019/12/04(水) 15:02:13.63ID:vhuKISsK
バスブーストですか?
2019/12/04(水) 15:46:25.30ID:MnUOTj8y
「フロント周り」って何のことですか??
588デフォルトの名無しさん
垢版 |
2019/12/04(水) 16:29:27.61ID:vhuKISsK
フロント企業が一般消費者と直接取引する会社で、バックが暴力団じゃなかったっけ。
2019/12/04(水) 19:40:12.56ID:FhHmXOPx
つまんな
2019/12/04(水) 19:50:18.04ID:FhHmXOPx
企画書を読まないとわからないコードなんかあると思ってるのか?
読むべきはcppreferenceのようなアホにも分かるように優しく解説してくれてる文書
分からないことがあれば必要なキーワードを検索欄にぶち込んだらすぐに分かるようにできている
2019/12/04(水) 20:09:28.90ID:6yabeJe9
アホのサバイバルか
唾棄
2019/12/04(水) 20:33:31.84ID:ZHZFM6qI
プロでもアマチュアでもいいんだよ
初心者でも学生でもいいんだよ
ただし
身の程知らずのド素人が知ったふうな口を利いてるとさすがに叩かれるよ
2019/12/04(水) 20:49:47.75ID:+udf6Yna
>>577
> ソフトエンジニアでC++の規格書を読む人なんてほとんどいないよ
お前の周りはそうなんだろうな

> そんなのを読んでも良い設計にはつながらない
読んだことない奴はそう言うよなw

>>578
お前規格票に何を書いてるのか知らんだろ
まあそのまま沈んどけ
594デフォルトの名無しさん
垢版 |
2019/12/04(水) 21:20:21.85ID:xsMIF6qI
ていうかC++のスレでこんな流れが加速するなんて
思ったよりC++erて数いたんだなぁ、というのが素朴な感想
2019/12/04(水) 21:22:48.52ID:DNIeF7b9
アホでも炎上商法はできるってことだ
596デフォルトの名無しさん
垢版 |
2019/12/04(水) 21:54:34.88ID:vhuKISsK
じゃあ点呼取ります。
江添クン!
2019/12/04(水) 22:15:09.71ID:ZHZFM6qI
> 思ったよりC++erて数いたんだなぁ、というのが素朴な感想

C++erというよりここは単に無職と学生サンのすくつでしょw
2019/12/04(水) 22:19:24.66ID:7vpFGLgR
とりあえず>>593は無職だと思う
2019/12/04(水) 22:27:51.85ID:UrCkYA+I
c++11以降みたいなああいうコード書きたいなら変な見栄はらずにpythonでもrubyでもやってたらいいんだよ。
600デフォルトの名無しさん
垢版 |
2019/12/04(水) 22:31:45.53ID:QZ1McR0s
C++コンパイラやSTL準拠ライブラリを作る仕事に関わってたら規格書を読まないとどうにもならないと思うけど、
そうじゃない人は市販のC++入門で十分じゃないかな。
2019/12/04(水) 22:33:17.56ID:J7QAHgda
>>596
金型の会社に出向いて定期的に講座やってるらしいね
金型の演算ってそんなC++が効くものなんだ
CGALみたいに幾何分野でバリバリ使われるのは知ってるけど、設計の分野も同じなんかな
2019/12/04(水) 22:33:57.92ID:UrCkYA+I
てか規格通りにまともに動くなんてのは例外ってことは
普通にc++を仕事で使ってりゃ分かるもんだがな。
その時点で江添みたいに実際の仕事で使ってないのが丸分かりになる。
2019/12/04(水) 22:58:37.27ID:CXPVLMHx
今時MSVCでも大部分は規格通り動くぞ
2019/12/04(水) 23:08:27.56ID:7MoywY5f
>>598
どこからそんなアホな決めつけしてるんだよ…
もしかして会社からセミナーとかにも行かせてもらえないような底辺なのか?w
605デフォルトの名無しさん
垢版 |
2019/12/04(水) 23:22:31.61ID:vhuKISsK
式を教えてもいいけど、理解できるかどうか。
2019/12/05(木) 00:23:37.10ID:XYdg44Nt
必要なら読むし必要じゃないならないなら読まないってだけのことだろ。
そんなん場合によるっつーつまらん結論しかないと思うが。
2019/12/05(木) 00:28:04.37ID:wvPvimki
はいいつものクソ正論いただきました
2019/12/05(木) 00:35:44.19ID:dM4mxJ4y
実の無い(楽しそうでもない)話をつづけられるよりはクソ正論で鎮火してくれたほうがマシに思う。
件の人たちはそれで鎮火するような人でもないんだろうけど。
2019/12/05(木) 00:43:36.10ID:2jEFb1Vk
互いに見下しあい罵倒しあってこそC++er
ここは不毛なマウント取り合戦の場C++スレ
鎮火する必要なし
2019/12/05(木) 01:15:42.96ID:+j7BXLrg
また髪の話をしてる
2019/12/05(木) 02:59:31.66ID:9zn59iXI
すまんが、レベルの低い人から見ると、レベルの高い人が気軽に話した
内容が「マウントをとられた」と思ってしまうんだと思う。
そういうつもりで言ってなくても。
これは、公立の小学校でよく起きる現象で、問題になっている。
2019/12/05(木) 03:04:36.20ID:9zn59iXI
>>611
蛇足だが、これは欧米諸国でよく知られた現象。
アメリカで記名製掲示板が流行るのは、匿名性掲示板ではどうしても
それが起きてしまうので、それをよく分かった上でやっているのかも
知れない。それだけの理由ではないだろうけど。
2019/12/05(木) 06:18:49.18ID:eAZGTWY0
>>609-610
この流れを評するのに「不毛」って言葉を選ぶのはC++らしいね。
「マウント」も落語「頭山」を想起させる。
2019/12/05(木) 08:26:15.95ID:V4GZwDuE
しかしあれだな、C++ほどハゲがよく似合う言語を知らない
2019/12/05(木) 11:35:47.86ID:tjjaS4Ug
江添亮のC++入門 (webドラフト版? https://ezoeryou.github.io/cpp-intro/#再帰関数 )
を読んでます。

>例えば以下は階乗を計算する再帰で書かれたループだ。
> int factorial( int n ) { ...
> return n * factorial(n-1) ;
> ...
>このコードは末尾再帰になっている。
>末尾再帰は非再帰のループに機械的に変換できる特徴を持っている

これ factorial(n-1) が返ってきたらスタックに積んである n を掛けないといけませんよね。
厳密には末尾再帰とは言えない気がします。
そういうの無しに「直帰でコール元に値を渡せる場合」に末尾再帰と言えるのだと思ってたんですが、
私の理解が間違っているのでしょうか?

まあ今のコンパイラーは賢いので細かい事気にする必要ないのかもしれませんが。
616デフォルトの名無しさん
垢版 |
2019/12/05(木) 11:37:52.20ID:IbmhSLeW
>>611
馬鹿ほどそれを気にするよな
判らなかったら調べれば良いのに
調べずに反論し始めるω
2019/12/05(木) 12:32:19.12ID:RTwQsK8m
>>615
末尾再帰じゃないよ
2019/12/05(木) 13:51:16.60ID:tjjaS4Ug
>>617 ですよね。
ちょっと気になってたのでスッキリしました。
2019/12/05(木) 18:12:34.01ID:5PaJAEA2
簡単にループに出来るものはループで記述した方が良いよ
末尾再帰の場合もそうじゃない場合も

実行速度、使用リソース、
デバッグしやすさ、
スタック計算ツールなどツール類の使用、
などなどいろんな要素で
2019/12/05(木) 18:50:53.78ID:9zn59iXI
>>619
本当は、再帰呼び出しだとスタックサイズの制限により呼び出しの深さ(階数)
に制限が付いてしまう。ローカル変数を沢山使っている関数で、
1000万個のオブジェクトを再帰的に処理すると、スタックオーバーフロー
が出てもおかしくない。しかも、最近のマルチスレッド環境だと、
スタックのサイズはどうしても制限が強くなり勝ち。
2019/12/05(木) 18:58:39.27ID:5PaJAEA2
一言で言うと「使用リソース」だね
2019/12/05(木) 19:02:32.74ID:5PaJAEA2
「最近のマルチスレッド環境」はあまり関係ない
固定スタックサイズの組み込みCPUの方がヤバい
PICみたいなハードウェアスタックだともっとヤバい
2019/12/05(木) 19:28:34.51ID:ZSRmDUxb
検討事項が増えるから仕事で再帰は使わんね。
理解できない人も多いし。
2019/12/05(木) 19:42:30.55ID:9zn59iXI
>>622
シングルスレッドだと、スタックは自動伸張することが可能だった。
ところが、32BIT のマルチスレッド環境だと仮想メモリ空間のアドレス
空間自体が不足してしまうので、それは難しい。
ただし、64BIT 環境だと仮想メモリ空間が大きいので余り問題にならない
かも知れない。
■ このスレッドは過去ログ倉庫に格納されています