C++相談室 part153 at TECH
[2ch|▼Menu]
[前50を表示]
250:デフォルトの名無しさん
20/10/17 06:40:29.09 P3PLPttw.net
> おまえらと違ってこちとらおまえらごとき論破するのに侮辱語はいらねえ
このあと逆に論破されて小学生みたいな煽りしてたなw

251:デフォルトの名無しさん
20/10/17 06:41:48.98 P3PLPttw.net
悔しかったら反論してみろ

252:デフォルトの名無しさん
20/10/17 06:51:39.36 foE/glNf.net
>>243
いつものアホだろうから相手したくないんだが
「内容によらない」と言われてんだよ気付けよ

253:デフォルトの名無しさん
20/10/17 06:53:17.86 P3PLPttw.net
> おまえらと違ってこちとらおまえらごとき論破するのに侮辱語はいらねえ
URLリンク(emotion-ai.userlocal.jp)
> 怒りの感情が強い文章です
論破されて怒っちゃったかな?初心者くん

254:デフォルトの名無しさん
20/10/17 07:23:58.19 U3N3/O+C.net
>>246
ねえねえ斉藤さん、どれのこと?
具体的なレス番とフレーズ教えてw

255:デフォルトの名無しさん
20/10/17 07:25:38.64 U3N3/O+C.net
>>248
うわ、内容によらないって主張か
なるほど、俺の手に負えない超アホだな

256:デフォルトの名無しさん
20/10/17 07:27:40.09 lpP9BTeB.net
将棋に向いてるライブラリと向いてないライブラリを具体的に言えばばいいんじゃないの

257:デフォルトの名無しさん
20/10/17 07:36:13.01 foE/glNf.net
いやいや、質問者が書いてるのはどちらも3Dの(2Dでも使えるけど)"グラフィックス周りの"ライブラリだぞ

258:デフォルトの名無しさん
20/10/17 07:46:35.47 lpP9BTeB.net
いや適当なこと抜かすから将棋に向いたゲームライブラリあるなら上げてみればって言っただけだけど

259:デフォルトの名無しさん
20/10/17 08:08:27.37 U3N3/O+C.net
>>254
ゲーム用である必要全然ないね
shogiguiとか中覗いたことある?

260:デフォルトの名無しさん
20/10/17 09:39:14.14 XiAEb7KG.net
なんだこのスレ

261:デフォルトの名無しさん
20/10/17 09:58:55.16 U3N3/O+C.net
マウント取ろうとして返り討ちに遭ったカブトムシがいるスレです

262:デフォルトの名無しさん
20/10/17 10:03:40.12 foE/glNf.net
>>255
ググってみたが既製のソフトやんけ
>>257
自己紹介乙ww

263:デフォルトの名無しさん
20/10/17 12:55:56.00 6mBaBAeI.net
C++のメンターは半年で精神を害してやめるか廃人になる

264:デフォルトの名無しさん
20/10/17 13:03:03.95 rUSQx6JP.net
そりゃお前さんの会社がブラックなだけだろ

265:デフォルトの名無しさん
20/10/17 14:30:06.82 bl1AtnqD.net
まあ江添みたいな輩といっしょに働いてたらメンタル壊れるだろうな。
まともに話ききやしねーし。

266:デフォルトの名無しさん
20/10/17 14:47:43.15 /Ip3Dsod.net
奇貨居くべし

267:
20/10/17 15:07:46.75 fHznvt//.net
>>261
>>259 をよく読め
>>259 は「メンター」と付き合うとメンタルが壊れる、と言っているのではなく
「メンター」自身がメンタルが壊れて、結果、メンターという存在が皆無になる、と言っているのだよ、事態はより深刻なんだ

268:デフォルトの名無しさん
20/10/17 16:52:45.52 U3N3/O+C.net
>>258
既成のソフト以外の何だと思ったの?
マウント取り損なったのが誰かは、誰の目にも明らかなので
安っぽいネットスラングで返しても無駄だよw

269:デフォルトの名無しさん
20/10/17 17:20:58.06 l+Syhppg.net
もはやC++でゲーム開発は向いていないのでは
今時型安全なんて時代遅れだよ

270:デフォルトの名無しさん
20/10/17 18:39:57.56 P3PLPttw.net
>>264
ID:U3N3/O+C
> おまえらと違ってこちとらおまえらごとき論破するのに侮辱語はいらねえ
URLリンク(emotion-ai.userlocal.jp)
> 怒りの感情が強い文章です
論破されて怒っちゃったかな?初心者くん

271:デフォルトの名無しさん
20/10/17 19:10:46.71 RsKDaYmq.net
>>265
1つくらい正しいこと言えよ。
今でも重量級ゲームはC++が主流。rustに流れる可能性はあるけど
あとC++は型安全ではない

272:デフォルトの名無しさん
20/10/17 19:18:55.82 U3N3/O+C.net
>>266
アフィサイトのNGワード程度の「解析」に依存しちゃってる自分恥ずかしくないの?

273:デフォルトの名無しさん
20/10/17 19:39:08.06 U3N3/O+C.net
2回も繰り返しちまって可哀想にw

274:デフォルトの名無しさん
20/10/17 20:06:45.56 P3PLPttw.net
縁起悪いから黙ってろ バカが伝染る

275:デフォルトの名無しさん
20/10/17 20:20:21.84 U3N3/O+C.net
あっ、斉藤!!

276:デフォルトの名無しさん
20/10/17 20:24:53.10 /XplsXfZ.net
ごめんだけど、他でやってくれないかな。

277:デフォルトの名無しさん
20/10/17 22:54:56.13 vimxgZ9f.net
相談です。C++を完全に理解するにはどうすればいいですか?
URLリンク(pbs.twimg.com)

278:デフォルトの名無しさん
20/10/17 23:06:18.54 7I8BM+av.net
神に近い存在になること

279:デフォルトの名無しさん
20/10/18 00:28:03.87 oU6L/1KQ.net
大学生起業家が設立1年で20億円調達! 単発バイトアプリに外食企業など出資【タイミー】
URLリンク(foodfun.jp)
誰でもカンタンにオンラインサロン・情報配信ができる便利アプリ【TOUKU(トーク)】が登場
URLリンク(prtimes.jp)
中学時代の車いす生活から、17歳で起業するまで
URLリンク(www.advertimes.com)
ミャンマー発 AIダイニングアプリ「Yathar」をしかける日本人起業家
URLリンク(roboteer-tokyo.com)
自分の視野は「世の中の0.001%」と自覚せよ。ビジネスチャンスを掴む4つの習慣
URLリンク(headlines.yahoo.co.jp)
アプリの視聴率がわかる 高専卒起業家の独創力
URLリンク(www.nikkei.com)
1万人の若者を支援!インターンが日本を変えるかも!? glowshipの若き創業者・足立卓也氏インタビュー
URLリンク(sogyotecho.jp)
まだ22歳の学生社長が得た、23億円の「使い道」 あの橋本環奈をCMに使うバイトアプリの雄
URLリンク(toyokeizai.net)

280:デフォルトの名無しさん
20/10/18 01:40:34.70 /Z/JZuKT.net
twitterで
C++完全に理解した!
って呟けばOK

281:デフォルトの名無しさん
20/10/18 06:35:44.42 e/dVAB4j.net
コンパイラを実装してみれば嫌でもワカル

282:デフォルトの名無しさん
20/10/18 07:44:07.32 +ySY8JLF.net
そんな極端なキチガイみたいなこと言うな!
・・とかつっこみたいかもしれないが、意外とそれ真理から困る >>277
C++ が現状あちこち解り辛い仕様になってる色々な理由のほとんどが
コンパイラの実装の都合であることがおおい

283:デフォルトの名無しさん
20/10/18 09:07:32.28 CqLBM1Q2.net
>>273
この人達>>277>>278の言う事を真に受けるのなら、組み込み開発をやるといい。
アセンブラレベルでC++が理解できる。
コンストラクタ、デストラクタがどのようなタイミングで呼ばれるのか、グローバル変数、ローカル変数はどのようなメモリ領域を使うのか、ヒープ領域の挙動...経験を積むと自然にC++の細かい挙動が理解できる。
そういうミクロな話じゃない?
なら、常にC++の最新企画の仕様を調べよ。
入門書に書かれていない便利な機能が色々あるぞ。
そういえば質問内容は完全に理解したいだったな。じゃあ、どっちもやれ。

284:デフォルトの名無しさん
20/10/18 10:13:18.70 e/dVAB4j.net
完全に理解と型安全には正直ゴールがあるかどうか疑わしい

285:デフォルトの名無しさん
20/10/18 11:52:18.14 H1xH1BRx.net
>>279
そういう話になるから結局C++じゃなくてCからやれって話になるんだよ
C++は有害

286:デフォルトの名無しさん
20/10/18 11:54:54.20 CqLBM1Q2.net
>>281
どこに有害要素があるのかわからん。

287:デフォルトの名無しさん
20/10/18 14:45:22.41 5IG+e1ti.net
>>279
そうしてソフト構築能力皆無な
C++博士ができあがったのだった

288:279
20/10/18 15:23:40.89 Erm+FeMo.net
> そうしてソフト構築能力皆無な
> C++博士ができあがったのだった
まぁ、C++を完全に理解したところでっていうね。
そんな暇あれば別言語を学んだり、フレームワークの使い方を学んだりDDDやTDDとか学べって話だわな。

289:デフォルトの名無しさん
20/10/18 20:08:20.51 347vI+AY.net
オブジェクト指向プログラミングと言っても、各コンポーネントというかプログラムの最小単位は多くの場合手続き型で記述することになるよな?
どこからどこまでを「最小単位」と見なすか、という問に対する基準というかガイドラインを知りたいな(筆者の主観が混じるとしても)

290:デフォルトの名無しさん
20/10/18 21:04:28.67 oU6L/1KQ.net
この時代に生きててSNS発信を頑張らないやつはアホだ。
URLリンク(www.youtube.com)
【事例付き】YouTuberは最強の副業である件について。
URLリンク(www.youtube.com)
【初心者向け】YouTubeの始め方・稼ぎ方を徹底解説!
URLリンク(www.youtube.com)
【貧者の工夫で戦え】ガラケーだっていい。YouTube始めるのにパソコンはいらない!
URLリンク(www.youtube.com)
YouTubeを伸ばすコツ【5つの本質論/初心者向けのセミナーです】
URLリンク(www.youtube.com)
【悲報】YouTuberはマジで難しいので、ほぼ挫折すると思う【無理ゲー】
URLリンク(www.youtube.com)

291:デフォルトの名無しさん
20/10/18 21:05:46.61 e/dVAB4j.net
ソフトウェアの良い設計というのは
結果的に破綻も漏れも無く抽象化できていればおk
あくまで結果
成功の秘訣は8割方センス

292:デフォルトの名無しさん
20/10/18 21:10:04.50 N2+RrN1t.net
>>287
あらゆる仕事はスーパーマンがやれば全て解決という
結局何も言ってない空論
現場でマジこれ言ってるやつは求人にクリプトン星人と書いている
人事屋としての究極の無能

293:デフォルトの名無しさん
20/10/18 21:13:31.38 OvLc2vD2.net
>>285
正直言うと、当たり前のように使われる手続き型という言葉がピンと来ない。
オブジェクト指向におけるソースコードの適切な分割方法を知りたいってこと?

294:デフォルトの名無しさん
20/10/18 21:20:59.62 OvLc2vD2.net
抽象レイヤーから具象レイヤーまで順番に話を進めていく方が俺は好きだがな。
一言目で無能呼ばわりするのはどうかと。

295:デフォルトの名無しさん
20/10/18 21:26:52.52 e/dVAB4j.net
>>288
早くうまく書けた奴に次の仕事もやらせるのが一番弊害が少ない
理解や気づきの機会は外から与えることはできるが
それがどう理解や吸収につながるかとなると当人の資質や性向のファクターが大きいすぐる

296:デフォルトの名無しさん
20/10/18 21:36:12.84 OvLc2vD2.n


297:et



298:デフォルトの名無しさん
20/10/18 21:42:13.49 e/dVAB4j.net
OOPは物事を整理する仕組みは提供してくれるが
どう整理をつけるかはやっぱ設計者のセンスに委ねられたままやんけ
実際>>287にゼロベースで的確に答えることは難しい
TDDは設計を検証する仕組みは提供してくれるが以下略
んまーテストケースをいっぱい書くというのは
物事簡潔に済ませる習慣が身につく良い経験かも試練、

299:デフォルトの名無しさん
20/10/18 22:21:54.75 OvLc2vD2.net
>>293
> OOPは物事を整理する仕組みは提供してくれるが
> どう整理をつけるかはやっぱ設計者のセンスに委ねられたままやんけ
その通り。だからこそ、そのセンスを磨かせるためにTDDもセットで紹介してみた。
まず、自分の設計が正しいか妥当性確認する手段も無いと間違ったオブジェクト指向が身に付く恐れがあるからね。
結局のところ、個々のセンスを磨かせないと駄目だが...センスを磨かせる環境を整えるのはリーダーの役割だと思う。
何もない状態でセンスで何とかせよ、よりは改善が期待できるよ。

300:デフォルトの名無しさん
20/10/19 00:20:11.11 lLBStDOZ.net
コンパイラの都合というよりかはcとの互換性とランタイム速度優先のための仕様によるものだろう。
てかむしろもっとコンパイラの都合考えたらもう少しまともな仕様になっとるわ。

301:デフォルトの名無しさん
20/10/19 05:23:08.92 f5AfjsGE.net
スーパーマンはある種の天才で、体系的に天才を教育する方法はないと思う。特に今現在の教育は全体の平均値を上げる事に主眼を置いているから。
大多数がほどほど幸せになる方法としてある程度うまくいってたけど、極少数が全体に絶対的な影響を及ぼすソフトウェアの世界だと効率の悪さが目立ってくるよね。
天才を見つけておいて必要な時に協力してもらうしかないんじゃないかな。全てにおいて天才はいないし来てもくれないので、得意分野では天才的みたいな奴と仲良くしておくぐらいか

302:デフォルトの名無しさん
20/10/19 11:06:36.21 4f6/Swqm.net
体系的に天才を教育する方法
ってのは実は簡単で、C++をやらせればいい

303:デフォルトの名無しさん
20/10/19 11:15:17.99 8zry6OWB.net
それは教育する方法ではなく
多数の中から天才を見つける方法なのでは?

304:デフォルトの名無しさん
20/10/19 11:37:24.11 VFLM6HTy.net
選ばれても来るかどうかは天才次第

305:デフォルトの名無しさん
20/10/19 12:11:42.92 0OpHGeV7.net
プログラムの才能のある人材を発掘する方法は、以前だとLispかHaskellをやらせるのが定番だったけど今はどうなのかね?

306:デフォルトの名無しさん
20/10/19 12:44:51.59 QMGC8XAt.net
まずクソ企業で天才が居座るメリット無くね?
誰かが頑張ってくれるだろうみたいな雑魚集団と仕事したくねーわ。

307:デフォルトの名無しさん
20/10/19 13:49:59.16 asy7wTux.net
>>296
天才とは言っていない
URLリンク(equallove-2017.blog.jp)
URLリンク(equallove-2017.blog.jp)
URLリンク(star.programming-study.com)
2020年10月17日放送分
TK-80の産みの親?
元マイクロソフトでwindows95の開発に参加?
良く判らんけど
Windows95の生みの親に直撃!開発秘話やプログラミングの裏話、子どもたちに伝えたい思いを告白

308:デフォルトの名無しさん
20/10/19 15:44:35.47 99pu8OZG.net
>>301
誰かが頑張ってくれるだろうみたいな雑魚がいない企業をおまえさんは知っているの?

309:デフォルトの名無しさん
20/10/19 20:56:03.32 lLBStDOZ.net
残念ながらGAFAでもその種の馬鹿はいる。

310:デフォルトの名無しさん
20/10/20 00:14:11.70 0Qd32UHv.net
君たち C++ の話をしろ

311:デフォルトの名無しさん
20/10/20 03:00:21.68 C47XLKZf.net
deleteで解放しようとするとたまに落ちるバグがあるのですが
try〜catchで囲っても、やっぱ落ちます。
これって例外で処理することはできないんでしょうか?
それともやばいバグ過ぎてつかまえられないだけなのでしょうか?

312:デフォルトの名無しさん
20/10/20 03:05:40.63 U9bI1hKI.net
投げない例外は捕まえられないのでは?

313:デフォルトの名無しさん
20/10/20 03:09:48.67 C47XLKZf.net
>>307
これじゃダメなんでしょうか?
すみませんC++よくわかってなくて…
try{
delete p;
}catch(...){
std::cerr << "error!" << std::endl;
}

314:デフォルトの名無しさん
20/10/20 03:14:10.05 U9bI1hKI.net
>>308
pのデストラクタの中で何かが起きていて、そこで例外が投げられないから補足できないのでは?
それと経験的に、再現性の無いバグは、十中八九、未定義の記憶域を読むことで発生する。

315:デフォルトの名無しさん
20/10/20 03:23:38.12 NaQDrxzK.net
丼なスパゲティーコードをメンテしてるか気になる

316:デフォルトの名無しさん
20/10/20 03:27:44.66 C47XLKZf.net
>>309
デストラクタは何もないので
どこかでメモリ処理がおかしくなってるんでしょうね…
一旦、動くようにしてみたかったのですが、もうちょっと調べてみます。
ありがとうございました。

317:デフォルトの名無しさん
20/10/20 03:36:12.53 NaQDrxzK.net
そういうときに役に立つのがprintfデバッグだろ
どの工程で起こったのかある程度目星がつく

318:デフォルトの名無しさん
20/10/20 04:45:58.59 C47XLKZf.net
>>321
継承元の親クラスを何個も辿ってよく調べたら
コンストラクタの中で怪しいポインタにアクセスしている個所がありました。
おそらくこれが原因だと思います。
皆さん有難うございました。

319:デフォルトの名無しさん
20/10/20 07:34:58.90 OBwoowsU.net
デストラクタとdelete演算子はデフォルトでnoexceptなんで、
例外発生時点で異常終了してしまい、try〜catchじゃ捕まえられないそうだ。
URLリンク(cpprefjp.github.io)

320:デフォルトの名無しさん
20/10/20 07:48:57.86 wzOsKsv0.net
そういう問題じゃねえよ
不定のポインタは検出不能だ

321:デフォルトの名無しさん
20/10/20 08:40:05.01 OBwoowsU.net
いや、今回の問題の解決のために書いたわけではなくて、
>>308のように書いても無駄だと伝えるために書いた。
そのあたり明示せずに書き込んですまん。

322:デフォルトの名無しさん
20/10/20 11:34:12.27 pHiz9StD.net
atexit()
exit()
で捕捉出来ないかな

323:デフォルトの名無しさん
20/10/20 11:51:22.81 uu0FmVn9.net
デバッガに頼るのは甘え
プロはprintfだけで正しくデバッグする!

324:デフォルトの名無しさん
20/10/20 11:56:25.10 pHiz9StD.net
プロは logger 使うし
百歩譲っても使うのは fprintf の方

325:デフォルトの名無しさん
20/10/20 13:10:32.17 wzOsKsv0.net
printfが使える環境ならな
そうでない場面がごまんとあるから
選択肢は多いに越したことはない

326:デフォルトの名無しさん
20/10/20 13:21:42.91 NaQDrxzK.net
シリアルモニタくらいは用意できるだろ

327:デフォルトの名無しさん
20/10/20 13:21:52.61 vcQhkuUZ.net
基本的にprintfデバッグの延長
制度化体系化されたprintfデバッグがログ取り
loggerはより高度なprintfデバッグであり、その基本がprintfデバッグになる
この変数を眺めりゃ万事OK という直感が涵養される
loggerの出力先が10万キロ離れたプリンタなこともある

328:デフォルトの名無しさん
20/10/20 13:23:45.82 wzOsKsv0.net
オシロ使ったりもする

329:デフォルトの名無しさん
20/10/20 13:26:30.76 C+6cO9mm.net
路地穴は使うよね

330:デフォルトの名無しさん
20/10/20 13:28:29.10 56eYC1pE.net
スペアナくらいは普通使うよね

331:デフォルトの名無しさん
20/10/20 14:24:10.56 wzOsKsv0.net
無線屋さん?

332:デフォルトの名無しさん
20/10/20 14:27:50.64 Y3GT62kx.net
C#を作ったアンダース・ヘルスバーグもデバッガのステップ実行よりもprintfを使うってインタビューで言ってたな

333:デフォルトの名無しさん
20/10/20 14:34:50.28 kixGkAna.net
尻穴は使うよね

334:デフォルトの名無しさん
20/10/20 17:41:32.21 AdA8N6MK.net
C++23のdraftが公開されてた
URLリンク(wg21.link)

335:デフォルトの名無しさん
20/10/20 17:48:19.32 wzOsKsv0.net
>>329
情報ありがとう

336:
20/10/20 22:08:32.52 glKVTYwZ.net
>>300
C のポインタ、特に関数ポインタ、とか
リカーシブ、とかで十分でしょう

337:デフォルトの名無しさん
20/10/21 00:07:59.13 HJxHMNRz.net
尻カーブ?

338:デフォルトの名無しさん
20/10/21 11:15:30.61 xBgAWF1Y.net
シッタカブリ

339:デフォルトの名無しさん
20/10/21 11:18:26.05 F4fghCXJ.net
printfデバッグなんてあり得んけどな。

340:
20/10/21 11:45:48.97 SYSvovlW.net
>>334
でも最初のうち、プログラムが小さいうちは、それが一番手っ取り早いですね

341:デフォルトの名無しさん
20/10/21 11:52:32.13 xBgAWF1Y.net
printf デバッグは完成後に printf の行を消すと動かなくなったりするω

342:デフォルトの名無しさん
20/10/21 12:15:19.02 EPxGxCCv.net
関数化やクラス化でプログラムを小さくするわけで、あんまり関係ないな
assertを使うときもそうだが、デバッグ用のコードに副作用を入れちまうのはヘボ以下

343:デフォルトの名無しさん
20/10/21 12:41:52.63 BgzupaSs.net
デバッグOffして弊害残すヤツは動作の仕組み把握出来てないだけだろ
>>336、まず貴様のコーディングセンスを磨いてから出直してこい青二才

344:デフォルトの名無しさん
20/10/21 23:09:27.50 oE8Yb73v.net
非同期で動くブツ同士の通信はprintfデバッグ大活躍なのでは…
誰がいつ何を呼んで何を渡したのかと呼ばれたほうが本当に受け取ったのかがすぐワカル
printf消去忘れについては条件コンパイルを使えば良いし、
Ad-hocな追加ならいかに大量にやってもソースコード管理システムで安全に消すこともできるわけやし、

345:デフォルトの名無しさん
20/10/22 00:49:05.87 VEHOj23m.net
未定義動作踏んでるときとかにprintfを呼び出すことでたまたま動くようにできたりする
ということか

346:デフォルトの名無しさん
20/10/22 10:43:36.11 vPWH9GQz.net
>本当に受け取ったのかがすぐワカル
buffer flush しないと判らんし
flush すると勝手に改行する環境とかあるし
そこまで便利ってほどでもなくね
nonbuffered しろってか

347:デフォルトの名無しさん
20/10/22 10:47:06.06 ZfML18uZ.net
ここまでの話をまとめると
やはりprintfデバッグが最強、ということですね

348:デフォルトの名無しさん
20/10/22 12:25:12.96 QhFI+vyp.net
#ifdef DEBUG
 #define PUTCHAR(a) (putchar(a), fputc(a, _fpDbg))
#else
 #define PUTCHAR(a) (putchar(a))
#endif
PUTCHAR(*ptr++);
みたいなことをやれば デバッグ時だけ*ptr++ が二回評価されて結果は変わってしまう。

349:デフォルトの名無しさん
20/10/22 12:29:38.65 PrgepFj3.net
>>343
インライン関数に置き換えられるだろ
少しは頭使え

350:デフォルトの名無しさん
20/10/22 12:30:03.14 Pdn6awLx.net
デバッグ関係ねーじゃん

351:デフォルトの名無しさん
20/10/22 12:31:48.09 QhFI+vyp.net
>>344
そんなことは当たり前。
IQが低い人と話すとこれだから困る。

352:デフォルトの名無しさん
20/10/22 12:34:55.42 PrgepFj3.net
>>346
わかってるならインラインで書けよ池沼

353:デフォルトの名無しさん
20/10/22 12:38:34.09 QhFI+vyp.net
>>347
駄目な例を敢えて書いたんだ。
どうしてそれが分からないの、あなた達には?
IQが高い人には駄目な例が単なる例として出されたのだと分かるのに
ここの人達にはそれがわからない。

354:デフォルトの名無しさん
20/10/22 12:39:39.22 3l9/RVrp.net
>>339
非同期なアプリでprintf使うとタイミングが変わることがあるから安心できんな
デバッガよりは遥かに良いけど

355:デフォルトの名無しさん
20/10/22 12:41:58.22 QhFI+vyp.net
>>336
「printf デバッグは完成後に printf の行を消すと動かなくなったりするω」
と書いていたが、>>340が指摘した理由だけではないので、
そうなる他の理由の1例を>>343で書いた。

356:デフォルトの名無しさん
20/10/22 12:45:00.97 QhFI+vyp.net
これが考える力なんだよ。
マスコミを含めて「知識知識」と言う人が多いが、生まれつきの頭が悪いと
>>344 >>347 のような馬鹿な発想しか出来ないのでどうにもなら無い。
俺に比べれば、おまえが池沼の癖に。

357:デフォルトの名無しさん
20/10/22 12:48:35.56 t0UpjLw/.net
マクロを使う必要性が全く感じられなくてリアリティがない

358:デフォルトの名無しさん
20/10/22 13:11:57.24 PrgepFj3.net
>>351
おまえ自分のこと頭おかしいと思わないならかなり進んだ病気だな

359:デフォルトの名無しさん
20/10/22 14:13:12.96 +Chcwfvy.net
>>353
精神病院に行け。

360:デフォルトの名無しさん
20/10/22 16:17:21.51 t0UpjLw/.net
C++の話しねえやつは出てけ

361:デフォルトの名無しさん
20/10/22 17:13:27.21 Ztx90rC8.net
C++ラーメン次郎うめえ

362:デフォルトの名無しさん
20/10/22 18:56:55.19 N0tQIHiY.net
>>350
たぶんみんなは
そりゃマクロ使えば何でもありありだろ
そんなことでドヤるとかバカじゃねーの
って思ってる…

363:デフォルトの名無しさん
20/10/22 19:00:31.57 wCIm4hGG.net
>>335
printfデバッグを肯定するとは
ロートルの吹きだまり感かなりある

364:デフォルトの名無しさん
20/10/22 19:08:50.28 lftkiv5C.net
printfごときで騒いでる方が精神いかれてんだろ。。

365:デフォルトの名無しさん
20/10/22 19:11:08.49 dQkQeqlj.net
今はJTAGがあるので、そんなにお金がかからない。
それでも、プロセッサごとにデバッグ環境を用意できるわけないだろ!!というのが日本企業の現状なら、中韓に任せて野菜でも育てる道が効率よい。
中韓は用意できるし、売り切ることが出来る。
printfデバッグなんてインパール作戦と同じ。
物量が違いすぎる。

366:デフォルトの名無しさん
20/10/22 19:15:22.48 dQkQeqlj.net
お前たちは農民に戻れ。
ハイ解散。

367:
20/10/22 20:52:46.17 RiQFyYLu.net
>>360
私のマザーボードの JTAG/IEEE1149.1 はどれですか?

368:デフォルトの名無しさん
20/10/22 21:09:21.98 dQkQeqlj.net
>>362
OS開発の場合は、専用のボードを用いることを視野に入れる。
それが無理なら、中韓に任せて撤退するべし。

369:デフォルトの名無しさん
20/10/22 23:42:23.12 PrgepFj3.net
#ifdef DEBUG
 #define PUTCHAR(a) do{auto b=a;putchar(b), fputc(b, _fpDbg);}while(0)
#else
 #define PUTCHAR(a) (putchar(a))
#endif
死ねザコw

370:デフォルトの名無しさん
20/10/23 08:10:45.22 DuAJkWLf.net
センズリマクロ

371:デフォルトの名無しさん
20/10/23 12:27:51.26 mEDgqyfG.net
>>364
else節もコピーしろザコw

372:デフォルトの名無しさん
20/10/23 12:34:55.69 wQpWPNJn.net
教師が「こういうやり方はしてはなりません」と言っただけなのに、
生徒「そういう場合は、inline使えよ馬鹿教師」
という馬鹿生徒の集まり。
学級崩壊。

373:デフォルトの名無しさん
20/10/23 12:38:30.14 DuAJkWLf.net
教師が「こういうやり方はしてはなりません」と言っただけなのに、
生徒A「そういう場合は、inline使えよ馬鹿教師」
生徒B「こういうやり方ならいいんだよ、死ねザコw」
教師「」

374:デフォルトの名無しさん
20/10/23 12:48:55.12 wQpWPNJn.net
inline関数や、>>364のやり方が分かった上で教師は言っている。
それとも、おまえらの通った学校の教師はそんなことも分からない
くらい程度が低かったのか?
どこの学校だよ。

375:デフォルトの名無しさん
20/10/23 13:33:06.99 g1Zoxl1Q.net
ここは教室じゃねぇんだよバカが
とっととキエロ

376:デフォルトの名無しさん
20/10/23 13:52:00.54 DuAJkWLf.net
俺が通った学校の教師か
化学のおじいちゃん先生だったな
当時C++はまだ世に出てなかったから
マクロの使い方は知らなかっただろうな

377:デフォルトの名無しさん
20/10/23 15:17:01.62 vvEFmscd.net
へー、Cにはマクロないんだ?

378:
20/10/23 16:10:04.88 HRhvOpQY.net
>>372
#define マクロはありますが、lisp 様仕様マクロはありません

379:デフォルトの名無しさん
20/10/23 16:52:36.06 GtGn5ZF1.net
c++の文句をいって
cの話を延々はじめる
そしてどっちも言い尽くされた話
printfデバッグやってるじじいの特徴

380:デフォルトの名無しさん
20/10/23 16:57:39.47 DuAJkWLf.net
>>372
C++が世に出る前っていつ頃かわかってる?
その頃のCを化学のおじいちゃん先生がやってると思ったの?
おまえさんでさえK&R Cなんか使えるのか?

381:デフォルトの名無しさん
20/10/23 17:12:38.69 2f10zgGH.net
DxLib は printfDx で printf 推奨ω

382:デフォルトの名無しさん
20/10/23 17:55:43.35 vvEFmscd.net
>>371 ではC++はまだ世に出てなかったからマクロの使い方は知らなかっただろうと言ってるのに
>>375 では化学のおじいちゃん先生がCなんてやってるわけないだろうと言っている
それではC++が世に出ててもその頃のC++なんておじいちゃん先生はやらなかったのでは。
だとすると >>371 はいったい何が言いたかったのか…

383:デフォルトの名無しさん
20/10/23 20:21:43.75 DuAJkWLf.net
>>377
同一人物なんだが君は何に見えたのかな??

384:デフォルトの名無しさん
20/10/23 20:22:37.35 DuAJkWLf.net
で、君はK&R Cは使えるのか?

385:
20/10/23 20:23:29.32 IQ0Nf1Vk.net
>>379
K&R1 か K&R2 かを指定してください

386:デフォルトの名無しさん
20/10/23 20:32:42.02 DuAJkWLf.net
もちろん1よ
2なんて馬鹿言うわけねえだろ
何が言いたいの? おまえさんは

387:デフォルトの名無しさん
20/10/24 00:28:14.62 5I5noegP.net
>>341
>nonbuffered しろってか
別に
非同期要素同士のハンドシェークがうまく行っているかは
callerとcallerの呼び出し順序に崩れが無いことをメッセージの中身とともに確認できればほぼほぼ十分なので
printf()を呼んでから出力されるまでの時間はあんま拘る意味は無い

388:はちみつ餃子
20/10/24 02:46:57.76 yf0wmlMH.net
非同期な処理を観察するってのは非同期な処理が「失敗しているかもしれない」のを見つけ出さなきゃいけないってことだよね。
複数のスレッドが競合したりする場合もあるってことだよね。
printf は歳入可能でもないし、問題があるときは printf の処理も信用できないと思うんだけど。
信用できないけどバッファに溜まったまま吐き出されないということはなるべくないようにしたいって話でしょ。

389:デフォルトの名無しさん
20/10/24 06:18:58.62 S/SsQhb2.net
printfが再入可能でないってどゆこと? strtokみたいに状態を持つのか?

390:デフォルトの名無しさん
20/10/24 08:34:42.41 H3Ix9ZgH.net
スレッドセーフとリエントラントってどう違うの?

391:デフォルトの名無しさん
20/10/24 08:40:39.80 VP+yyMyu.net
単一スレッドでも再帰なんかで再入は発生しうる
関数内でクリティカルセクションなどを使ってスレッド同期するようにしていても状態を持つ作りだと同一スレッドからの再入で異常になることはある

392:デフォルトの名無しさん
20/10/24 08:44:50.93 VP+yyMyu.net
Cランタイムは通常スレッドセーフだよね
だから複数スレッドでprintfを読んだりerrnoを参照してもよい
Windowsの場合、_beginthreadで作成したスレッドはCランタイム安全、CreateThreadで作成したスレッドはCランタイム安全ではないとかいう話もあった

393:デフォルトの名無しさん
20/10/24 11:13:00.25 aZOaF4i3.net
>>385
今、リエントラント(再入可能)という言葉は余り聞かなくなっているが、
ハードウェアに密着したプログラムを書くときに、ハードウェア割り込みの
割り込みルーチンがまだ終わってないタイミングで、同じ割り込みが生じ、
同じルーチンが再帰的に呼び出されることがあり、そのような呼び出しに
対応しているものを「リエントラント」と呼ぶことがあった。
ただし、そのようなプログラムは複雑になりがちなので、ハードウェア
割り込みが生じ、割り込みルーチンがまだ終わってないタイミングで、
同じ割り込みを発生させる原因がもう一度発生しても、割り込みルーチン自体を
呼び出さないようにする手法が使われることが多かった、というか、
その様にプログラムすることが標準とされ、そのためにプログラマブル割り込み
コントローラなるものが、その役割を果たすモードを持っており、それが通常、
有効な状態にされていた。

394:デフォルトの名無しさん
20/10/24 11:21:13.53 aZOaF4i3.net
>>388
一方、単一スレッドプログラムの場合、mallocの中からmallocが再帰的に呼び出される
ことはそもそもない。printfも同様。
なので、複数スレッドが動作している場合でも、各スレッドにおいては、
mallocやprintfが再帰的に呼び出されることはない。
そして、mallocを作る場合、Heapに関する重要データを読み書きする時、クリティカルセクション
のようなもので囲って、1つのスレッドだけが読み書きできるようにするような手法が使われる。
この場合、その区間を実行しているのは、最大で1スレッドのみであり、複数スレッドが
同時に実行することはない。
もちろん、malloc自体は同時に複数のスレッドが呼び出しても良いが、malloc内部で重要データ
の読み書きが行なわれるのは、必ず1スレッドのみで、それ以外のスレッドは待機させられる。
割り込みハンドラをリエントラントにする場合には、このようなクリティカルセクション的な
やり方は絶対に使えない。
まず、割り込みハンドラは、実際に実行しているのは1スレッドと言えば1スレッド。
割り込み自体が、1コアしかなかったZ80などにおいても有った概念でもあるし、それは当然であるが。

395:デフォルトの名無しさん
20/10/24 12:26:35.65 w2qFem8L.net
おじいちゃん
スレタイ読もうか

396:デフォルトの名無しさん
20/10/24 12:29:55.83 +GevKgJx.net
coutデバッグと言うべきってか

397:デフォルトの名無しさん
20/10/24 12:34:34.81 UCFHvZt3.net
>>388
多重割り込みの話と勘違いしてねーか?
同一割り込みなんて起きなくてもメインルーチンで使ってる関数を割り込みルーチンで使う可能性があるならリエントラントでないとおかしくなるよ
そもそもシングルスレッドで割り込み使ってなくてもある関数内で直接的もしくは間接的に自分自身が呼ばれる場合もリエントラントでないとおかしくなる
最近の言語だとグローバル変数とか静的変数使ってなきゃ(例外はあると思うが)リエントラントになるのであまりに気にする必要はなくなった

398:デフォルトの名無しさん
20/10/24 14:30:45.75 ZbhxKyMw.net
ちゅうことはスレッドセーフなloggerが全部同じファイルにログを書き込むんだろ
これもうそのまんま出力に逐一印字させた方がいいんじゃね

399:デフォルトの名無しさん
20/10/24 15:33:28.19 H3Ix9ZgH.net
>>391
いや、厳密にはstd::coutデバッグというべき(ドヤ

400:デフォルトの名無しさん
20/10/24 15:35:14.21 LXBNuCv6.net
printf()はスレッドセーフ
複数スレッドから呼べる
規格のどこに書いてあるかは示せないが探せばあるはず
なぜなら、ファイルI/Oやからなあれ
もちろんこれは、printf(("ABC")とprintf("CDE")をそれぞれ別スレッドで呼んだ場合、
ABC、CDEという表示になるという保障にはならないが
実際にはたいていのケースで行単位で分かれてくれるからデバッグには困らない
行が頻繁に混じってしまってデバッグにならないようなら初めて行単位の排他の追加を検討する
みたいな

401:デフォルトの名無しさん
20/10/24 15:37:01.80 LXBNuCv6.net
ただしもちろん割り込みルーチンからprintf()を呼ぼうとするような猛者は知らん
火の粉がこっちに降りかからない限り
放っておいて差し上げなさい

402:デフォルトの名無しさん
20/10/24 15:38:11.89 cYR5fjBG.net
保障にはならないが〜
実際にはたいていのケースで〜
こういうの一番困る

403:デフォルトの名無しさん
20/10/24 17:06:18.74 ZbhxKyMw.net
printf使ってヘンになってるならまだ許せるが自前のクソloggerが全般的にクソ動作してると排除したくなる

404:デフォルトの名無しさん
20/10/24 17:47:23.40 H3Ix9ZgH.net
非同期シグナル安全な関数のリストにprintfがない・・・
URLリンク(docs.oracle.com)

405:デフォルトの名無しさん
20/10/24 17:57:44.41 lGAQOfIr.net
自前でロックすりゃいいだろ

406:デフォルトの名無しさん
20/10/24 18:01:02.56 H3Ix9ZgH.net
printf実行中に割り込みが発生して、なおかつそのhandlerでprintf使ってると
デッドロックが発生する(?)
※printfは内部でmallocを使ってるので、>>389に書いてあるようにheapの
操作時にロックを取得しようとするため
という感じかな?

407:デフォルトの名無しさん
20/10/24 18:10:47.63 lGAQOfIr.net
なら自前のprintf作ればいいだろ
標準に頼りきるバカが

408:
20/10/24 18:13:44.58 sM3RwuUT.net
>>402
>自前のprintf作ればいい
こういう台詞は、その能力の欠けたものが得てして言いがちなことだよなあ‥‥と

409:デフォルトの名無しさん
20/10/24 18:32:15.74 lGAQOfIr.net
己の道は己で切り開くものだ
貴様らジャップどもは文句たらたらと言ってるだけで行動に移そうとはしない
猿に退化する課程の獸だな

410:デフォルトの名無しさん
20/10/24 18:55:26.18 W2/6It6m.net
>>404
ワイらがジャップだとしたら
お前はいったい何なんだよ

411:デフォルトの名無しさん
20/10/24 19:34:38.35 kvu4j0jg.net
>>404
無関係な問題まで何でもかんでも民族や国籍に結びつけて的外れな非難をしようとするとは、怒りに囚われて論理的思考力が壊滅的にダメージを受けてるんだろう。プログラマとしては致命的だなw

412:デフォルトの名無しさん
20/10/24 19:40:13.77 LXBNuCv6.net
割り込みルーチンの中からprintfを読んだら危


413:ッなのは 一般にOS機能のうちクリティカルセクション(ロック)みたいな高級な機能が ユーザーが勝手に定義した割り込みルーチンのコンテキストでは使えないからじゃわ; OSはOSで割り込みを受けてスレッドのコンテキストを管理しているので、 それとは非同期に起きたOSのあずかり知らない割り込みで OSの高級な機能が呼ばれたらOSの管理情報の排他が崩れる



414:デフォルトの名無しさん
20/10/24 19:44:20.88 LXBNuCv6.net
割り込みルーチンから呼んでも安全なprintf()を自力で実装するとしたら
メインのOSとコードベースをまったく異にする必要があるのでOSの自力実装に近くなってくる
やっぱ割り込みルーチンからはprintf()呼ばないというのが一番スマート

415:384
20/10/25 08:15:28.48 B8Qi0Gue.net
聞くんじゃなかった
printf( → fprintf(stdout,
みたいなもんでstdoutが静的記憶域期間とか
そういう説明が聞けるのかと思いきや
なんだこりゃ・・・

416:デフォルトの名無しさん
20/10/25 08:36:53.97 fEg6VUML.net
stdoutが静的記憶だとして(大概のOSではIOBで管理しておりそうなっているはずだが
printf()をユーザー定義な割り込みルーチンから呼ぶと
それの排他を安全に行える人がだれも居なくなる、

417:デフォルトの名無しさん
20/10/25 10:46:14.61 zd7LSfWt.net
printfデバッグでダメならputデバッグでいいじゃん

418:デフォルトの名無しさん
20/10/25 11:40:46.63 luVqTFHx.net
printfごときでいちいちケチつけやがって陰気なヤロウどもだぜ

419:デフォルトの名無しさん
20/10/27 20:01:20.88 9N87g439.net
こいつらは屁理屈言いたいだけでデバッグする気なんて少しもない。

420:デフォルトの名無しさん
20/10/27 23:03:02.20 1nczmGPR.net
お金払われればやるよ

421:デフォルトの名無しさん
20/10/27 23:23:32.01 2LDrYrw3.net
金もらわないとデバッグしないの?
つまらない人生だね

422:デフォルトの名無しさん
20/10/27 23:25:33.33 IA9V1GzZ.net
そんなに楽しい事ならお前がやれば?

423:デフォルトの名無しさん
20/10/28 13:38:51.49 6icraQaZ.net
やらないならクソみたいなこと言ってないで黙ってりゃいいのに

424:デフォルトの名無しさん
20/10/28 14:00:21.64 a3TqMSUE.net
普通は成果物に対して報酬を得るよね
バグを出したら潰すのは当たり前
お金払わなきゃデバッグしないとか言ってる人は客先常駐のような労働時間に対して賃金を得る労務提供型なんだろうか
労働者から脱却しないとソフトウェア開発の本当の楽しさを知ることはできない

425:デフォルトの名無しさん
20/10/28 14:20:56.34 XBU5yUok.net
1レスの中で矛盾していくスタイル嫌いじゃない
成果に対して報酬があるならお金のためにバグ潰す
時間給なら貰えるお金は変わらないから「バグ潰すのは当たり前」と洗脳したり脅したりしないとバグは潰されない

426:デフォルトの名無しさん
20/10/28 14:50:59.10 K+lW0Fsg.net
いや、いるんだよ
他人が書いたコードを有料で引き継ぐ人
414がそうとは見えないけどね

427:デフォルトの名無しさん
20/10/28 21:57:28.94 bY6aZzj9.net
つーか普通に仕事してたらちょいちょい
前任者が逃げた、とか潰れた、とか逮捕された、とかで
クソみたいなゴミクソウンコのコードをわたされて
これ保守してねー、みたいなクソみたいな仕事
おしつけられることなんてまれによくあることだろ
そんでなぜかそいつのクソゴミコードのバグを
まるでおれが出したかのように責められる、までがセット

428:デフォルトの名無しさん
20/10/28 22:56:44.64 a3TqMSUE.net
ここってサラリーマンが多いのね


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

289日前に更新/258 KB
担当:undef