1 名前:デフォルトの名無しさん mailto:sage [2021/08/09(月) 10:57:31.60 ID:JaaB5Egp.net] 前スレ C++相談室 part156 https://mevius.5ch.net/test/read.cgi/tech/1621389313/
255 名前:ハノン mailto:sage [2021/09/05(日) 18:06:53.16 .net] >>243 誰が書いたかなどどうでもよく、その内容についてはどう思いますか?
256 名前:はちみつ餃子 mailto:sage [2021/09/05(日) 18:10:26.36 ID:vh6AiUnJ.net] >>244 関数テンプレートが結果的に引数の数が違う関数として展開される。 引数の数の違いが結果の違い。
257 名前:デフォルトの名無しさん mailto:sage [2021/09/05(日) 18:23:29.28 ID:cBh+EO/A.net] >static std::shared_ptr<T> O = std::make_shared<T>(A...); の部分って、Singleton()の初回呼び出しが複数のスレッドから同時に起こってもき ちんと排他してくれるんでした っけ また排他してくれるとしても最速(そのアーキテクチャ(マルチコアかもしれない)で最も適切) であることを気体していいんでしたっけ…… つまり生成に成功した後は排他不要なわけで、無駄にロックを取りに行きたくない……
258 名前:デフォルトの名無しさん mailto:sage [2021/09/05(日) 18:24:18.83 ID:yIsM5ONG.net] >>242 おまえホント頭悪いな
259 名前:デフォルトの名無しさん mailto:sage [2021/09/05(日) 18:27:31.03 ID:cBh+EO/A.net] みたいな配慮がシングルトンにしたとたんに必要になる メインの処理が始まる前に普通の初期化関数呼び出しでOを生成したらそれで済むのに、、、
260 名前:デフォルトの名無しさん mailto:sage [2021/09/05(日) 18:28:54.12 ID:0Cj96kG7.net] >>247 呼ばれたところで最後の奴が勝てば問題ないのでは
261 名前:デフォルトの名無しさん mailto:sage [2021/09/05(日) 18:47:53.68 ID:cBh+EO/A.net] >>250 ある >static std::shared_ptr<T> O = std::make_shared<T>(A...); 全体が排他されないとしたら、Oの生成関数(初期化式「O=」の右辺)が複数回、 それも同期的に繰り返し呼ばれるのではなく、非同期的に再入される形で呼ばれかねない 生成関数の中でリソース確保するとしたら先の呼び出しで確保したリソースの ハンドルがdunglingにならないように配慮が必要になる 非同期的再入ということは、Oが生成→破棄→生成→破棄、にならず、 生成→生成→破棄→破棄になりかねないから、デストラクタをちゃんと書いたらリークしないとか そういう認識で当たったらバグる 問題山積や メインの処理が始まる前に普通の初期化関数呼び出しでOを生成したらそれで済むのに、、、
262 名前:デフォルトの名無しさん mailto:sage [2021/09/05(日) 18:50:05.34 ID:nyuo1Vq1.net] >>245 お前の質問なんかどうでもいいからデマを貼るな
263 名前:デフォルトの名無しさん mailto:sage [2021/09/05(日) 19:08:04.86 ID:UYU4AxET.net] >>247 https://timsong-cpp.github.io/cppwp/n4861/stmt.dcl#4
264 名前:デフォルトの名無しさん mailto:sage [2021/09/05(日) 19:10:36.36 ID:2jP3+tuQ.net] >>246 を踏まえるとこんな感じか 関数テンプレートだけで済ます方法はあるのかな? https://ideone.com/kmIimz
265 名前:ハノン mailto:sage [2021/09/05(日) 21:38:19.52 .net] >>248 はい、頭も性格も悪いと思います、しかし >>242 の中のどういうところが悪いとお考えになったのか教えていただくと嬉しいです!!
266 名前:デフォルトの名無しさん mailto:sage [2021/09/05(日) 22:21:15.62 ID:TAzC3d8r.net] >>255 そもそも、C++の生みの親で、それに関する書籍を出してその中でC++を 良い言語と自負して(それ以上の言語が出来ないというような主張も幾度もして) 解説し、まだ推進しようとしている人が、C++を徹底的に卑下するかどうかを 疑問に思ってないことも頭が悪いと思われる原因の一つ。
267 名前:デフォルトの名無しさん mailto:sage [2021/09/05(日) 22:29:24.50 ID:15q7gB85.net] 実際、C++は、特に初期の頃はCより全面的に優れていると誰でも思えるような 物であって、ちゃんと世界的に認められて広まっていたのに、その部分まで 全否定するようなことをインタビューで答えるわけがない。 その後に追加されて機能は人により評価が分かれて全面的に優れているとは 思えるようなものではなくなっていた。 だから、C++11は、好きな人も居れば嫌いな人も居る。C++98より全面的に 優れていると言えるかどうかは人により評価が分かれるので、好みにより 文壇の様なものが生じている。
268 名前:デフォルトの名無しさん mailto:sage [2021/09/05(日) 22:30:49.67 ID:cBh+EO/A.net] >>254 ひ、日本語でおk、、、 >If control enters the declaration concurrently while the variable is being initialized, the concurrent execution shall wait for completion of the initialization.85 >If control re-enters the declaration recursively while the variable is being initialized, the behavior is undefined. はどう読めばいいの? 結局concurrentlyにre-enterされるときはbehavior is undefinedとしか読めなさげ >>254 以上の状況なので>>244 の糞コードは直しても仕方が無い
269 名前:デフォルトの名無しさん mailto:sage [2021/09/05(日) 22:36:38.84 ID:66hkUr5p.net] メモリを自動解放するfinally機能さえあればCでも大丈夫とは思う
270 名前:デフォルトの名無しさん mailto:sage [2021/09/05(日) 22:50:33.49 ID:yIsM5ONG.net] https://imgur.com/aX1iNMp.jpg
271 名前:デフォルトの名無しさん mailto:sage [2021/09/05(日) 22:52:01.95 ID:cBh+EO/A.net] とオモタがcontrol enters the declaration concurrently のときは初期化のcompletionまでshall waitで、 ただしrecursivelyだとイカン(未定義動作)と書いてあるのか…… つまりSingleton()関数内の初期化式「O=」の右辺がSingleton()を呼び出す場合か まあ確かにWindousみたいに特殊な仕様のクリティカルセクションでもない限りデッドロックしそう
272 名前:デフォルトの名無しさん mailto:sage [2021/09/05(日) 23:09:38.17 ID:eTOvJaZ9.net] >>251 そうか まあ仕様的にはスレッドセーフだわ 関係ないけど参照したグローバル変数に値が入っとらんで困ったことがあった
273 名前:デフォルトの名無しさん mailto:sage [2021/09/06(月) 00:30:26.82 ID:62gS+LUW.net] >>258 なんかスレッド安全性の問題にしたいようだけど、 そもそも>>244 の第一の問題点は2番目のSingletonの呼び出しだけ別のオブジェクトを指してしまっている点だよ stdoutの2行目だけ0になってるだろ? その原因の説明が>>246 というわけだ すべての関数・クラスを最初からスレッドセーフな設計にしないといけないわけじゃない
274 名前:デフォルトの名無しさん mailto:sage [2021/09/06(月) 04:31:29.75 ID:HRRCwLhx.net] >>263 >>258 じゃないし、よく分からないけど https://ideone.com/69FQhL ではダメなの?
275 名前:デフォルトの名無しさん [2021/09/06(月) 04:31:59.38 ID:G2BRvA3h.net] ビャーネ・ストロヴストルップその人のインタビューだとは私も考えてませんよ、これはブラックジョークというべきでしょう、まあC++er が気を悪くする理由は理解できますが それに私も GNU Multi-Precision Library を使うときはC++のラッパの方を使います。C インターフェースの方は使い難くって使い難くって、これはもう罰ゲームですね‥‥ だから演算子のオーバーロードも控えめに使えば有用という立場です、紹介することと賛成することとは別だと思います https://mevius.5ch.net/test/read.cgi/tech/1434079972/84
276 名前:ハノン mailto:sage [2021/09/06(月) 04:40:03.34 .net] テステス
277 名前:デフォルトの名無しさん mailto:sage [2021/09/06(月) 07:17:56.24 ID:7SReNX2q.net] >>263 スレッドセーフでなくともよいシングルトンとか >メインの処理が始まる前に普通の初期化関数呼び出しでOを生成したらそれで済むのに、、、 で良くね? >>264 >>263 じゃないが非アトミックな操作(初回か否かチェックして初回なら初期化する) であることが明示される分その書き方の方がマシ 必要なら排他する、不要ならしないという判断ができるから >すべての関数・クラスを最初からスレッドセーフな設計にしないといけないわけじゃない (>>263 ) という願いも叶うYO!
278 名前:デフォルトの名無しさん mailto:sage [2021/09/06(月) 08:08:09.17 ID:62gS+LUW.net] >>264 確かに普通こんな感じだな テンプレート別々にすることだけで頭止まってた >>267 そうだな 書いてはみたがC++でシングルトン使う意味は無いと思う あれはグローバル変数の無いJavaでグローバル変数を使うためのハックだとか聞いたし じゃあもう普通にグローバル変数使えばよくね、と
279 名前:デフォルトの名無しさん mailto:sage [2021/09/06(月) 08:45:11.58 ID:3/UK3SOv.net] グローバル変数と同じなのでだめだよな 普通に動的に用意して渡せばよろしい
280 名前:デフォルトの名無しさん mailto:sage [2021/09/06(月) 08:48:23.63 ID:HRRCwLhx.net] ログとかアプリの現行設定ファイルとかはSingletonっぽく実装するけどなぁ・・・ インスタンス生成が遅いものはただのグローバルにしたら起動が遅くなるし
281 名前:デフォルトの名無しさん mailto:sage [2021/09/06(月) 09:20:13.64 ID:FistWoaj.net] >>268 最初のデザパタ本であるGOF本はc++とsmalltalkで書かれてるんで、javaは関係ないよ
282 名前:デフォルトの名無しさん mailto:sage [2021/09/06(月) 10:32:20.65 ID:d5h9Y6Qi.net] シングルトンはスレッドセーフが実現できれば問題ないでしょ
283 名前:デフォルトの名無しさん mailto:sage [2021/09/06(月) 12:01:04.36 ID:KKMECnvR.net] >>255 >>265 これは「権威に訴える論証」を悪用した主張であり、議論の対象としてはいけない類のもの。 もし真面目に議論したいのなら、少なくともStroustrupの名前は消して内容だけに修正しなくてはならない。 本人も否定しているのに訂正もしないようなフェイク記事は邪悪。それに対してコメントを求めるのは正気を疑う。
284 名前:デフォルトの名無しさん mailto:sage [2021/09/06(月) 12:06:51.69 ID:86SPG0/G.net] その昔、こんなクラス作ってたな class WinMainArguments { public: static HINSTANCE hInstance; static HINSTANCE hPrevious; static LPSTR lpszCmdLine; static int nCmdShow; };
285 名前:デフォルトの名無しさん [2021/09/06(月) 15:04:51.66 ID:DsY+3+kX.net] >>265 ブラックジョークは大半の人が聴いた瞬間にジョークだと判るから成立する 麦藁禿のあの名文はまさにそれ だまされてるのは事情を知らない若い人かも知れんな
286 名前:デフォルトの名無しさん mailto:sage [2021/09/06(月) 15:52:40.84 ID:86SPG0/G.net] >>265 GMPについて同意見
287 名前:デフォルトの名無しさん mailto:sage [2021/09/06(月) 16:43:26.89 ID:akmYwjNo.net] >>274 ネームスペースつかえよバカww
288 名前:デフォルトの名無しさん mailto:sage [2021/09/06(月) 16:51:37.50 ID:5nha9zO6.net] >>277 初期のc++には名前空間が無くてなぁ。 標準化する前だから良く知らんが。
289 名前:デフォルトの名無しさん mailto:sage [2021/09/06(月) 17:50:02.90 ID:xrgLRigr.net] その初期のC++ってもしかしてEC++とかいうパチモンじゃないですかね
290 名前:デフォルトの名無しさん mailto:sage [2021/09/06(月) 17:51:19.11 ID:ugWeBDlD.net] 今更バイエルの運指について議論してるような雑魚に構うなよ C++もピアノも、憧れだけあって実力がまるでないバカ
291 名前:デフォルトの名無しさん mailto:sage [2021/09/06(月) 20:33:14.67 ID:d5h9Y6Qi.net] 日本語版(0xCC=フ)によりフフフフフ…で埋められたWin32アプリデバッグメモリを思い出した人、どのくらいいるかな 「フフフ…」4歳娘が撮影した花火に家族で爆笑! 見ると笑顔になる“奇跡の1枚”の状況を父親に聞いた | FNNプライムオンライン https://www.fnn.jp/articles/-/224754
292 名前:はちみつ餃子 mailto:sage [2021/09/06(月) 23:42:11.67 ID:buVCF6sT.net] >>278-279 D&E によればネームスペースは 1991 年に ANSI/ISO の委員会において浮上したトピックであるとのことだ。 逆に言えばそれ以前には無かった。 Windows 3.1 の頃に C++ でプログラミングしていたなら >>274 のようなコードが有ったとしても不自然とは言い切れない。
293 名前:デフォルトの名無しさん mailto:sage [2021/09/07(火) 02:14:57.06 ID:b2odouMM.net] 今でもchar_traitsみたいのあるね
294 名前:デフォルトの名無しさん mailto:sage [2021/09/07(火) 02:29:38.39 ID:fAleIY7G.net] なあに名前空間的な修飾を省略させたくない時に役立つ
295 名前:デフォルトの名無しさん mailto:sage [2021/09/07(火) 03:15:39.97 ID:5ki66s4L.net] >>259 cに付け加えるならgoのdefer文かなと思う。
296 名前:デフォルトの名無しさん mailto:sage [2021/09/07(火) 11:04:53.08 ID:1Eqd+3ka.net] C
297 名前:...Cにだってtry~catch~finallyあるんだからね!(ネタ=setjmp/longjmpを使ったマクロ) https://gist.github.com/rampion/91594 [] [ここ壊れてます]
298 名前:デフォルトの名無しさん mailto:sage [2021/09/07(火) 23:50:11.37 ID:jZhA4bAr.net] >>286 ちなみにtry~catch~finallyっぽいのはVC++が持つと光と闇が両方そなわり最強に見える Cが持つと逆に最適化が合わさり頭がおかしくなって死ぬ
299 名前:デフォルトの名無しさん mailto:sage [2021/09/08(水) 05:21:53.89 ID:KzXEzs8I.net] >>287 別に頭がおかしくなって死なないでしょ finally機構で資源解放する機会が増えるのはユーザーの利益になるだけで、複雑さを増す不利益にはならないよ
300 名前:デフォルトの名無しさん mailto:sage [2021/09/08(水) 05:59:59.53 ID:4NmVrZFW.net] 確かにgccだと-O1でも2でも3でも暴走しちゃうけど、vc++だと最適化してもちゃんと動くね
301 名前:デフォルトの名無しさん [2021/09/08(水) 09:59:21.28 ID:1wbeyQs7.net] VC++はマイクロソフト拡張によってCでも構造化例外処理が使えたんだよね __try __except __finally
302 名前:デフォルトの名無しさん mailto:sage [2021/09/08(水) 10:59:12.67 ID:6jFCz4HP.net] intalコンパイラはほんとにヤバいが、gccの最適化で変なことになったことは自分は一回もない
303 名前:デフォルトの名無しさん mailto:sage [2021/09/08(水) 17:34:33.82 ID:nCYYHiA4.net] finallyは20年前からBorlandC++に既に実装済だったしその頃のVC++なんか>>146 の状態やし
304 名前:ハノン mailto:sage [2021/09/08(水) 19:46:07.29 .net] >>276 ですよね!
305 名前:ハノン mailto:sage [2021/09/08(水) 19:47:37.26 .net] >>286 最近まで try.. catch の実装の大半は sjlj だと思っていましたが最近は違うのですか?
306 名前:ハノン mailto:sage [2021/09/08(水) 19:51:02.76 .net] >>273 あなたはジョークの分からない人か、それとも >>275 のいう若い人か >>242 は >>230 と同様でしょ
307 名前:デフォルトの名無しさん mailto:sage [2021/09/08(水) 19:52:56.05 ID:zE01k1pD.net] >>294 IDが出る板でID消してると浪人焼かれるぞ
308 名前:ハノン mailto:sage [2021/09/08(水) 20:33:06.31 .net] >>296 それは単なる都市伝説 お布施を毎年律儀に払っている人にそんなことをするわけがないでしょう‥‥
309 名前:デフォルトの名無しさん mailto:sage [2021/09/08(水) 20:48:20.14 ID:4NmVrZFW.net] >>289 の件、再現コード抽出しました。最適時i=1がlongjmp後に0に戻ります。 // gccだと最適化なしなら正常終了。最適化すると終わらない。 #include <stdio.h> #include <setjmp.h> int main(int argc, char *argv[]) { int i = 0; jmp_buf jmpbuf; _setjmp(jmpbuf); printf("hoge\n"); if (i < 1) { i = 1; longjmp(jmpbuf, 1); } return 0; }
310 名前:デフォルトの名無しさん mailto:sage [2021/09/08(水) 21:06:38.45 ID:QZMwNs5W.net] gccで例外ぽい事したいならC++にして使えで完結しちゃうからな……
311 名前:デフォルトの名無しさん mailto:sage [2021/09/08(水) 21:09:30.53 ID:4NmVrZFW.net] インラインアセンブラとかでもない限り、処理系依存の文法を使いたくはないし、>>286 はあくまでネタですよ。 ただ最適化時の挙動が違う原因を知りたかったので、個人的に調べた結果を載せといただけです。 お気になさらず。
312 名前:デフォルトの名無しさん mailto:sage [2021/09/08(水) 22:55:38.96 ID:7k6oklod.net] setjmpの結果を変数に入れちゃダメだって教わらなかった?
313 名前:デフォルトの名無しさん mailto:sage [2021/09/08(水) 23:11:18.07 ID:cWvdMGeM.net] 入ってなくない?
314 名前:デフォルトの名無しさん mailto:sage [2021/09/09(木) 02:02:27.18 ID:aICFtjZy.net] >>297 規制議論板を一度でも見たことがあるの? どれだけのIDを消して書き込んでる奴が浪人焼かれてるかその目で確かめてくるといい
315 名前:デフォルトの名無しさん mailto:sage [2021/09/09(木) 02:39:56.24 ID:AtdpUvef.net] コテとトリ付けながらIDは消すとかいうガイジムーブ 他スレでの荒らしがバレたら困りますって宣言してるようなもんだな笑
316 名前:デフォルトの名無しさん mailto:sage [2021/09/09(木) 03:11:54.20 ID:GRtgENVW.net] >>298 https://www.jpcert.or.jp/sc-rules/c-msc22-c.html
317 名前:デフォルトの名無しさん mailto:sage [2021/09/09(木) 03:58:39.82 ID:k9fYYQrZ.net] >>305 何を言いたいのか分からない無言URL貼りは時間の無駄なのでやめて欲しいです。少なくとも該当していません。
318 名前:デフォルトの名無しさん mailto:sage [2021/09/09(木) 04:10:55.91 ID:k9fYYQrZ.net] 一応書いておくと、>>298 のコードは見れば分かるとおりiをvolatile宣言して最適化の対象から外せば当然動きます。 これはlongjmpに限った話ではありません。 先のURLの個別のコードにはありませんが、一般論としての記述はありました。このサイトが元にしてるサイト(リンクのURLは違いましたが)ではvolatileも例に含まれているようです。 https://wiki.sei.cmu.edu/confluence/display/c/MSC22-C.+Use+the+setjmp%28%29%2C+longjmp%28%29+facility+securely
319 名前:デフォルトの名無しさん mailto:sage [2021/09/09(木) 04:18:38.68 ID:k9fYYQrZ.net] すみません。見落としてただけみたいですね。日本語の方でも個別のコードありましたね。寝ぼけてたかも。
320 名前:デフォルトの名無しさん mailto:sage [2021/09/09(木) 08:55:47.93 ID:+RnvyubR.net] >>295 嘘記事かどうかくらいは書いておくべきだと思うがね だいぶ前に初めて見たとき俺も半信半疑だったし(D&Eをまだ読んでなかった頃だが てかオブジェクト指向のとこをテンプレート(メタプログラミング)に置き換えるとすごいしっくり来るんだよなアレ
321 名前:デフォルトの名無しさん mailto:sage [2021/09/09(木) 12:39:56.43 ID:emntwqXC.net] >>295 全然違う。 >>230 は少なくとも本人の発言からの引用であり、(権威に訴える論証が混ざっているとはいえ)すべてを否定することはできない。 >>242 は自分の主張を強化するためにでっち上げた嘘であり、本人の普段の主張を否定する邪悪な紛い物。本人も否定しているものをジョークと称するのはやはり正気を疑う。
322 名前:デフォルトの名無しさん mailto:sage [2021/09/09(木) 12:56:38.90 ID:emntwqXC.net] >>295 一言言い忘れた。 ジョークを「主張」するなよ。アホか。
323 名前:デフォルトの名無しさん mailto:sage [2021/09/09(木) 18:44:12.96 ID:9obv3E3K.net] ワクチン拒否とかしてそう
324 名前:デフォルトの名無しさん mailto:sage [2021/09/09(木) 18:45:48.31 ID:I6ZDQIJr.net] ダニングクルーガー効果のなんちゃってマスター状態でも容易に書けちゃうのが問題。 そのクソコードの状態でも一応動くところがC++の恐ろしいところでもあり幅広いフリーフォーマットの適応力でもある。
325 名前:デフォルトの名無しさん [2021/09/09(木) 19:54:26.64 ID:VcdPV4nP.net] jokeもhumorも馬鹿には理解できない
326 名前:デフォルトの名無しさん mailto:sage [2021/09/09(木) 20:23:36.23 ID:M2q//47O.net] >>312 自粛警察乙 マスゴミに煽られるまま踊るのジュリアナのお立ち台みたいな気分?
327 名前:デフォルトの名無しさん [2021/09/09(木) 20:26:09.91 ID:5B6QjFP1.net] お前らってホント人にケチつけるときだけイキイキとしてんな
328 名前:デフォルトの名無しさん mailto:sage [2021/09/09(木) 20:41:37.86 ID:Ja2+yviO.net] シャリーア・ポリスとかスシ・ポリスとかみたいな人
329 名前:デフォルトの名無しさん mailto:sage [2021/09/11(土) 11:18:20.93 ID:ke/Tkn8S.net] オブジェクト指向も構造化も原理主義者がウザいだけで ナンチャッテでいいからやってると問題がきれいに整理できるので やめようとは全然思わない テンプレートだってそうだ
330 名前:デフォルトの名無しさん mailto:sage [2021/09/11(土) 11:23:49.14 ID:rfW8qH4V.net] pbs.twimg.com/media/EUH_eMWUwAAgsV4.jpg https://pbs.twimg.com/media/D4p7dNfUwAAa34y.jpg
331 名前:デフォルトの名無しさん [2021/09/11(土) 12:26:09.65 ID:3OqmYb77.net] C++には酸っぱい葡萄もある
332 名前:デフォルトの名無しさん mailto:sage [2021/09/11(土) 12:37:06.92 ID:FXACoymx.net] テンプレートってただの超絶便利機能だろ オブジェクト指向笑とは比べ物にならない
333 名前:デフォルトの名無しさん mailto:sage [2021/09/11(土) 12:45:07.36 ID:d+bn5JZd.net] >>318 歴史は繰り返す、ってことだろ 一時期C++コミュニティがJavaに悪影響受けたりしてたことからJavaを嫌悪してたやつが 何でもSTLの真似してりゃ自動的に価値のあるコードになると盲信してたからな 笑うしかない
334 名前:デフォルトの名無しさん mailto:sage [2021/09/11(土) 12:49:01.51 ID:ke/Tkn8S.net] 俺ら技術屋の辛いとこだよ 新しいものはとりあえず食ってみるしかない あげくゲロマズで非常に気分が悪くなることもあるが怖がってらんない
335 名前:デフォルトの名無しさん mailto:sage [2021/09/11(土) 12:59:15.55 ID:d+bn5JZd.net] 技術屋というか、実用してる人は盲信はしないと思う 原理主義に走るのは、自分の頭で考えない(権威に頼る)からだ 自分の頭で考えて使ってれば、自ずと長所も短所もわかるもんだ
336 名前:ハノン mailto:sage [2021/09/11(土) 14:40:07.67 .net] >>311 人を選ぶジョークとはまさに >>242 のことだったんですね‥‥ 今回は勉強させていただきました
337 名前:デフォルトの名無しさん mailto:sage [2021/09/11(土) 15:50:05.22 ID:pU9Ou8D7.net] 分かったら二度とデマ流すなよ ワクチンにマイクロチップだのどこそこの銀行が潰れるだの朝鮮人が井戸に毒入れただのもだぞ 本人は軽いジョークのつもりでも、デマとして流行したら人が死ぬんだからな
338 名前:デフォルトの名無しさん mailto:sage [2021/09/11(土) 18:07:47.03 ID:ke/Tkn8S.net] > 原理主義に走るのは、自分の頭で考えない(権威に頼る)からだ ほんこれ
339 名前:デフォルトの名無しさん [2021/09/11(土) 21:27:01.30 ID:3OqmYb77.net] そうはいってもC言語規格にfinally機構があったら便利なはず PGが規格追加に後ろ向きになってしまうのはコンパイラの対応が信頼できるレベルになるまで時間がかかる不快な経験を積んできたから
340 名前:デフォルトの名無しさん mailto:sage [2021/09/11(土) 21:45:47.80 ID:mopEDxb+.net] デストラクタもないC言語にfinallyだけあってもねぇ…
341 名前:デフォルトの名無しさん mailto:sage [2021/09/11(土) 21:55:48.31 ID:x2ZLDQix.net] じゃあC#使えで……
342 名前:デフォルトの名無しさん mailto:sage [2021/09/11(土) 21:59:46.39 ID:3OqmYb77.net] >>329 デストラクタがないからこそfinallyで資源解放処理を呼び出す需要があるともいえるんだけど
343 名前:デフォルトの名無しさん mailto:sage [2021/09/11(土) 22:14:53.27 ID:rQxvOqzv.net] >>331 実際に書いてみたらわかると思うけどどこからfinallyに来るのかわからないから解放処理書くのはけっこう大変だぞ
344 名前:デフォルトの名無しさん mailto:sage [2021/09/11(土) 22:44:38.83 ID:3OqmYb77.net] どこから来るかわからないのはgotoも同じ
345 名前:デフォルトの名無しさん mailto:sage [2021/09/11(土) 22:51:49.85 ID:6kN4WIJa.net] だからたいして楽にはならんよって話ね
346 名前:デフォルトの名無しさん mailto:sage [2021/09/11(土) 22:54:02.48 ID:zCvRZpSn.net] 例外がいらんわ 必要としてるやつはC使うなよ
347 名前:デフォルトの名無しさん [2021/09/11(土) 23:18:46.75 ID:EO9owr6G.net] 関数毎に atexit かな
348 名前:デフォルトの名無しさん [2021/09/12(日) 01:57:56.96 ID:z8yQu9Mw.net] Goのdefer文でいいんじゃないか
349 名前:デフォルトの名無しさん mailto:sage [2021/09/12(日) 11:03:53.61 ID:JRO5EM3e.net] ハノンフルボッコされて火病を起こしててワロス 自分が悪いのに逆ギレするほどみっともないことはないなあw
350 名前:デフォルトの名無しさん mailto:sage [2021/09/12(日) 11:40:02.90 ID:AN8tG6su.net] 整形後に関数が10行以上になったらコンパイルエラーにしよう 関数名1行+開きカッコ1行+return1行+閉じカッコ1行だから実質5行までな
351 名前:デフォルトの名無しさん mailto:sage [2021/09/12(日) 12:24:15.40 ID:SBMPlzna.net] たまにちびっこだらけのピアノ教室に一人だけ下手くそなおじさんが混ざってて臆面もなく発表会とかにも出てくるけど、それがその固定ハンドル
352 名前:デフォルトの名無しさん mailto:sage [2021/09/12(日) 17:30:32.90 ID:d/9I2lQ9.net] 質問でsが std::this_thread名前空間内の関数は、std::thread以外の手段で作ったスレッドで 実行しても大丈夫なんでしょうか、 一部のC標準ライブラリ関数みたいにスレッド起動手段次第でリークしたりすることは無い? https://cpplover.blogspot.com/2010/10/msvc.html
353 名前:デフォルトの名無しさん mailto:sage [2021/09/12(日) 18:10:18.89 ID:TJh0S1vO.net] >>341 やってみないと分からないから自己責任でご自由にどうぞ、というのが正しい回答
354 名前:デフォルトの名無しさん mailto:sage [2021/09/12(日) 18:54:34.09 ID:d/9I2lQ9.net] >>342 std::thread以外の手段で作ったスレッドで実行したときのふるまいは 規格上非規程ということでおk?
355 名前:デフォルトの名無しさん mailto:sage [2021/09/12(日) 18:58:14.10 ID:d/9I2lQ9.net] 未定義動作とか処理系依存とかではなく、規定されていないということ?