>>195
> ローカル関数で変数をキャプチャできるぞ
ローカル変数しかできんだろ。しかも明示しなければならない。(全指定も出来るが)
JavaScriptの場合は上位関数の変数をどこまでも辿れるので、(レキシカルスコープ)
入れ子になっていても破綻せずに分解して展開出来るんだよ。
C++方式の場合はawait内にawaitが入れ子になっていると、展開出来ないだろ。
> コールバックは階層が増えたりエラーや例外処理、分岐などが生じるとどんどん複雑になって単純には行かなくなる
> それを解決するのがPromiseで、それを更に単純に記述するのがasync/await
これは通説だが、俺はこれが嘘だと思ってるんだよね。
JavaScriptで言われているcallback地獄ってのは、非同期処理をその場で入れ子で書いている。
それよりawaitの方が見やすいってのは、上から順に読める形式だから。
でも>>180に書いたとおり、JavaScriptの文法ではcallbackを常に展開して書けるので、
その気になればawaitと同じ順で処理を書けるんだよ。(非同期がネストしない)
つまり、レキシカルスコープ+クロージャなら、awaitが無くてもawaitと同じ順で処理を書けるわけ。
C#やC++はレキシカルスコープがないからawaitが必要なだけ。
だからここら辺は実は文法との相性もあるんだよ。
C++はそんなのお構いなしに何でもかんでも入れてる感じだが。
(とはいえ、選択肢が増えること自体は悪いことではない)
> char *を受け取る関数ポインタにとconst char*で受ける関数ポインタを入れてエラーにしなかったらややこしくて危険なだけでしょ
そりゃconstの有無をテストで落とすのは無理だろうさ。
まあ、俺はconst自体が意味無い(無駄な手間が増えるだけ)という認識だが。
(ただし本当の意味でのconst(「定数」)の場合は使う。Cならマクロで与えていたケースとか)
そもそも君はどこまでconstを使っているんだ?
C++のconstは「定数」ではなく「再代入禁止」だ。
現実的には無駄に再代入することもないので、ローカル変数の大半にconstを付けられるはず。
これをやっているのか?
やっていないのなら、君自身も「過剰な型検査」が存在することを認めていることになるが。
C言語なら俺に聞け 142 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
204デフォルトの名無しさん (ワッチョイ 6323-6h2J)
2017/08/31(木) 22:54:02.64ID:F9uWTtxD0■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【北区小学校火災】女性教師「電気ストーブ近くで洗濯物を乾かしていた」 失火とみて捜査 燃えた残骸に“繊維片”付着 ★6 [Ailuropoda melanoleuca★]
- 【米紙報道】高市首相「コングレッショナルフェロー(官職)」経歴詐称疑惑… [BFU★]
- 「もっと日本人を雇え‼」と炎上したことも…店員は"ほぼ外国人"、業界トップゆで太郎社長がいま明かす本音 [少考さん★]
- 【W杯】元ブラジル代表ロナウド氏「日本には簡単に勝てる」決勝T1回戦で対戦可能性…避けたいのは「オランダ」 ★3 [首都圏の虎★]
- 「名古屋ほど適した場所ない」 広沢市長、副首都法案提出めぐり [首都圏の虎★]
- 【北中米W杯】決定機でシュートミスをしたイングランド代表FWケイン。ガーナの呪術師「彼に呪いをかけた」と告白 [首都圏の虎★]
- ダイドー、缶コーヒーなどの飲料83品目を10月から値上げ。自動販売機向けは据え置き [663766621]
- 金バエ(享年48)「毎日ビール9リットル飲んでいたら肝硬変になりました」 [832215575]
- 【大爆笑】高市、アメリカにインターンで行ってただけだった。連邦議会立法調査官とは一体… [744361492]
- 【動画】おまえらの想像の1.5倍″省スペース″な「USBモニター」が発見される [738130642]
- 現役JDのお茶会スレ( ¨̮ )︎︎𖠚ᐝ15
- 【同時視聴】キングスマン:ゴールデン・サークル