1 名前:デフォルトの名無しさん mailto:sage [2018/12/28(金) 06:04:52.38 ID:ufThBpcD.net] エスケープシーケンスやWin32APIなどの環境依存なものもOK そのような質問は必ず環境を書きましょう 半角空白やタブでのインデントはスレに貼ると無くなります コードを貼れる所 codepad.org/ https://ideone.com/ 前スレ 【初心者歓迎】C/C++室 Ver.103【環境依存OK】 https://mevius.5ch.net/test/read.cgi/tech/1530384293/
465 名前:デフォルトの名無しさん mailto:sage [2019/02/12(火) 13:19:56.52 ID:VqanzRzk.net] エアプwwwwwwwww今は参照カウントじゃねーよw残念だったなクソ蟻wwww
466 名前:デフォルトの名無しさん mailto:sage [2019/02/12(火) 13:20:43.00 ID:VqanzRzk.net] それで、Cの生ポってC/C++以外で表現するなら何なんだ?
467 名前:デフォルトの名無しさん mailto:sage [2019/02/12(火) 16:02:24.32 ID:VerJGrBE.net] >>466 native int
468 名前:デフォルトの名無しさん mailto:sage [2019/02/12(火) 17:27:09.82 ID:VqanzRzk.net] >>467 仮装アドレス的な意味で来るとは思ってなかったwでも本質はそうだよなあ
469 名前:デフォルトの名無しさん mailto:sage [2019/02/12(火) 17:29:23.18 ID:t+DTqVP+.net] CALL -151
470 名前:デフォルトの名無しさん mailto:sage [2019/02/13(水) 06:16:37.08 ID:2WlGbphz.net] >>466 今の言語は極力「生のポインタ」が見えないようにしてるからなぁ。 オレの乏しい知識で無理矢理ヒネリ出すなら、 「古いBASICの peek, poke のアドレス指定に変数を使った場合」かのう。 型のない単なるアドレスって言うか数値だけど。
471 名前:デフォルトの名無しさん [2019/02/13(水) 15:13:52.62 ID:Yg4iFXpY.net] upvar
472 名前:デフォルトの名無しさん mailto:sage [2019/02/13(水) 15:46:18.41 ID:SgfrIpbp.net] >>466 BYTE ptr = アドレス値; BYTE MEM[4096 * 1024]; // 4GB のメモリ配列 *ptr ---> MEM[ptr] // ptr は MEM[] 配列の添え字
473 名前:デフォルトの名無しさん mailto:sage [2019/02/13(水) 15:46:56.07 ID:GHq8zte2.net] 訂正: BYTE MEM[4096 * 1024 * 1024]; // 4GB のメモリ配列
474 名前:デフォルトの名無しさん mailto:sage [2019/02/13(水) 15:48:00.46 ID:GHq8zte2.net] 訂正: Uint32 ptr = アドレス値;
475 名前:デフォルトの名無しさん [2019/02/13(水) 18:19:07.37 ID:QnNf1eu6.net] 恥の上塗り
476 名前:デフォルトの名無しさん mailto:sage [2019/02/13(水) 19:18:53.91 ID:BFnAt9lr.net] intptr_t とか、INTPTRとか。
477 名前:デフォルトの名無しさん mailto:sage [2019/02/13(水) 19:41:39.99 ID:D91GFqhb.net] eax
478 名前:デフォルトの名無しさん [2019/02/13(水) 22:43:21.58 ID:8CyDgeqf.net] 行儀よく バッファなんて 守れやしなかった 夜のサーバ オーバフロー起こしてまわった *印見て アナルといわれた 早く添え字になりたかった 信じられぬ カーニハンとの 争いの中で 許しあい いったい何 解りあえただろう うんざりしながら それでも過ごした ひとつだけ解ってたこと このポインタからの 卒業
479 名前:デフォルトの名無しさん mailto:sage [2019/02/14(木) 07:38:16.87 ID:fSoz/vTj.net] まあstatic変数やglobal変数使ってリークしてないとか言い張るバカよりかは ナマポ使えやとは思う。 それならまだコード修正効くからな。 初心者にスマポ使わせればリークしないコード書かせることができるって考えははっきりいって幻想だわ。
480 名前:デフォルトの名無しさん mailto:sage [2019/02/14(木) 22:35:36.88 ID:vW9ukCJU.net] 昔研究室の後輩でポインタがわからないから全部グローバル変数でプログラム作ってるって奴がいて、 それはそれである意味すごいなって思ったわ。 マルチメディア系ライブラリを触る必要がある研究室なのだが。 元々組込系が得意な奴だったってのもあると思うけど。
481 名前:デフォルトの名無しさん mailto:sage [2019/02/14(木) 22:50:47.58 ID:tlcLfILV.net] COBOLERだったんじゃね
482 名前:デフォルトの名無しさん mailto:sage [2019/02/15(金) 00:04:29.72 ID:tnuHGyjk.net] 一度切りの使い捨て用途とかなら全然よくね
483 名前:デフォルトの名無しさん mailto:sage [2019/02/15(金) 00:36:18.42 ID:kpfA4lgp.net] >>479 スマートポインタを使うとコード修正効かなくなるの?どういうこと?
484 名前:デフォルトの名無しさん mailto:sage [2019/02/15(金) 00:46:46.72 ID:TR5VS7Vw.net] mp4boxをちょこっといじったのを作ろうとしたんだけど、 signed int32の計算で -2112000 / 48000 の結果が 89434 になるんですが。 VS2015のx64です。
485 名前:デフォルトの名無しさん mailto:sage [2019/02/15(金) 06:57:51.95 ID:OZ8Dcboc.net] >>484 「-2112000 / 48000 の結果が 89434」 その環境を持ってないんで分からないけど、 -2112000 の32bit16進数表現が 0xffdfc600 89434 * 48000 == 4292832000.000 == 0xffdf6b00 両者のビットパターンが一致することと関係ありそうね。 被除数の -2112000 を64bitで表現する際に 符号拡張 0x_ffff_ffff_ffdf_c600 とすべきなのに ゼロ拡張 0x_0000_0000_ffdf_c600 にしちゃって、 その後の計算は64bit正数でやってる感じかな。
486 名前:デフォルトの名無しさん mailto:sage [2019/02/15(金) 07:20:58.81 ID:1DfV94Wg.net] >>483 本人がスマポ理解できてないってオチだろ
487 名前:デフォルトの名無しさん mailto:sage [2019/02/15(金) 07:22:53.73 ID:1DfV94Wg.net] >>480 組み込みが得意でポインタがわからない後輩 設定に無理がありすぎw
488 名前:482 mailto:sage [2019/02/15(金) 07:53:28.61 ID:OZ8Dcboc.net] 再び >>484 「-2112000 / 48000 の結果が 89434」 (間違いを訂正) -2112000 の32bit16進数表現が 0xffdfc600 89434 * 48000 == 4292832000.000 == 0xffdf6b00 ビットパターン一致してないね。桁数多くて見間違えちゃった(テヘペロ)。 -2112000 を32bitで表現すると 0xffdfc600 であり、 これをゼロ拡張した 0x_0000_0000_ffdf_fc600 == 4292855330 を 48000 で割り算して小数部を捨てれば 89434 という答えが出る。 ということなら合ってるかな。
489 名前: mailto:sage [2019/02/15(金) 07:57:48.46 ID:8MeM2Ami.net] >>484 コードを https://ideone.com/ に貼っていただけませんか?
490 名前:デフォルトの名無しさん mailto:sage [2019/02/15(金) 09:49:31.73 ID:tuwIijw4.net] >>484 どうせ48000がunsignedなんじゃねーの それにつられて -2112000もunsignedになって4292855296 その結果が薬師美代ちゃん
491 名前:デフォルトの名無しさん [2019/02/15(金) 13:45:38.25 ID:TNDmXWGM.net] >>482 自分が何してるか判って使う分には問題無いな 適材適所だ
492 名前:デフォルトの名無しさん mailto:sage [2019/02/15(金) 21:13:40.77 ID:kkRd+/gL.net] >>483 >スマートポインタを使うとコード修正効かなくなる どういう風に読むとそういう理解になるのか。。 まずは日本語の理解が必要だな。
493 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 07:14:37.91 ID:KxX3tJEE.net] 超初歩的な質問になるのですが scanf関数を使って20個未満の任意の数だけ、数値を配列変数で受け取りたいです たとえば「2 4 8 9」と入力し、Enterが押されたらそれで確定 num[0]=2 num[1]=4 num[2]=8 num[3]=9 としたいわけです。 どうしたらよいでしょうか? 一応自分で考えたコード(期待通りの動きをしません)を掲載します for(i=0;i<20;i++){ scanf("%d",&num[i]); if(num[i]==‘¥n’){ break; } }
494 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 07:30:35.53 ID:a45/WyPQ.net] for(i=0;i<20;i++) if (scanf("%d",&num[i]) != 1) break;
495 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 09:09:16.12 ID:uZDoAvc4.net] >>493 scanfや標準ライブラリの関数など、参考書とかで普通の使い方はわかると思うけど、細かい仕様をmsdnやmanコマンドで調べるようにするとかなり理解が広がると思うよ。
496 名前:デフォルトの名無しさん mailto:sage [2019/02/17(日) 22:37:58.74 ID:O/E0SKNM.net] 中途半端なUI使うよりもcsvパーサーを作るかどっかからとってくるかすれば?
497 名前:デフォルトの名無しさん mailto:sage [2019/02/18(月) 00:02:29.61 ID:yZfkTbdS.net] autoってコンパイル遅くなりますか?
498 名前: mailto:sage [2019/02/18(月) 00:59:53.43 ID:aN2QSVsl.net] >>497 むしろ遅くなる方に振れるでしょうけれど、そんなのどうでもいいのでは?
499 名前:デフォルトの名無しさん mailto:sage [2019/02/18(月) 01:22:44.39 ID:c9cLPpQ7.net] autoって変数の型宣言の話だよね? コンパイルは遅くなるのか 速くしたい時はどうすりゃ良いの?
500 名前:はちみつ餃子 mailto:sage [2019/02/18(月) 01:27:51.06 ID:ViRlfcsh.net] C++ の auto は右辺と一致させるように推論するだけの単純機構で、 ややこしい演算で推論するわけではないので、 コンパイル速度ではほとんど差はないと思うよ。
501 名前:デフォルトの名無しさん mailto:sage [2019/02/18(月) 01:30:04.86 ID:tKsXQ0K5.net] autoはむしろコンパイル速くなるんじゃない? いちいち型を解決せずとも、既に解決済みの型を右から左へコピーするだけでいいんだから C++でコンパイルを速くするのは簡単で、単純にソースファイル数とインクルードするヘッダを減らせばいい C++のコンパイルが遅いのは主にコンパイル単位という時代遅れで極めて非効率なコンパイル戦略に起因しており、実はコードの複雑さ自体はわりとどうでもいい
502 名前: mailto:sage [2019/02/18(月) 01:31:11.50 ID:aN2QSVsl.net] >>499 C++を言語として選択した時点で「記述の時間やコンパイル時間を投資して実行時間を稼ぐ」という思想なのでは?コンパイル時間を短くする努力はする気がないと思います
503 名前: mailto:sage [2019/02/18(月) 01:32:21.67 ID:aN2QSVsl.net] >>501 >いちいち型を解決せずとも、既に解決済みの型を右から左へコピーするだけ この記述はコンパイル時を想定しているの?それとも実行時を想定しているの? はっきりさせたいので念のために確認します
504 名前:デフォルトの名無しさん mailto:sage [2019/02/18(月) 05:41:12.34 ID:KTgkm+s5.net] >>493 サーバーの 503 エラーに引っかかって昨日のうちに書けなかったんだが…。 >>494 の方法だと Enter が単純に読み捨てられて scanf() が終了せず まだ入力をよこせと言ってくるからダメみたいね。 11 22 33 (Enter) だと読み込みが継続、期待通りに動作しない 11 22 33 x (Enter) なら x を解釈する時点で scanf() が 0 を返してループ脱出 先に文字列として1行読み込んで sscanf() と思ったけど… ndat = sscanf(s, "%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d", &num[0], &num[1], &num[2], &num[3], &num[4], &num[5], &num[6], &num[7], &num[8], &num[9], &num[10], &num[11], &num[12], &num[13], &num[14], &num[15], &num[16], &num[17], &num[18], &num[19]); 実際に読めた値の個数は ndat に入る。 これは書くのもメンテナンスするのも嫌だなぁ。 strtol() で1個ずつ数値を拾いつつ、地道にポインタ進める方が良いかも。
505 名前:デフォルトの名無しさん mailto:sage [2019/02/18(月) 05:53:27.02 ID:KTgkm+s5.net] >>503 自分は >>501 の人じゃないけど。 ごく簡単な場合ながら、例えば int val_a = func(para); // func() がint互換の値を返すかチェックが必要 auto val_b = func(para); // func() の返す型そのまんまで val_b を作ればいい てな具合に考えると auto で定義した方がコンパイル時の手間が少ない、 という考え方にも一理あるかと。
506 名前:デフォルトの名無しさん mailto:sage [2019/02/18(月) 08:39:38.41 ID:KTgkm+s5.net] 瑣末なことだけど val_a, val_b って変数名は良くなかったね。 変数 variable の例なんだから var_a, var_b だわな。 というか、この場合は a, b で十分だ。
507 名前:デフォルトの名無しさん mailto:sage [2019/02/18(月) 10:06:03.91 ID:PGieQvh3.net] まず計測しろよ
508 名前:491 mailto:sage [2019/02/18(月) 13:24:52.92 ID:fHtoi1qq.net] >>504 ありがとう。ちゃんと確認してなかったわ。 タブに空白に改行はスキップしやがるんでしたか 別案としては fgets() ⇒ sscanf() になるんかな
509 名前:デフォルトの名無しさん mailto:sage [2019/02/18(月) 13:29:17.97 ID:fHtoi1qq.net] 505の後半は無しで 1文字ずつ切り出して解析してったほうがよさそうね
510 名前:デフォルトの名無しさん [2019/02/18(月) 15:27:41.58 ID:bbNHvPxv.net] コンパイル時間にリンク時間は含まれますか?
511 名前:デフォルトの名無しさん [2019/02/18(月) 15:28:58.14 ID:bbNHvPxv.net] >>504 scanf は禁止 >>508 が正しい
512 名前:デフォルトの名無しさん mailto:sage [2019/02/18(月) 15:34:26.17 ID:c9cLPpQ7.net] 人間の様な邪悪なものからの入力でscanfは使うなと、ばっちゃは言ってた
513 名前: mailto:sage [2019/02/18(月) 20:54:12.82 ID:aN2QSVsl.net] >>505 >func() の返す型そのまんまで val_b を作ればいい この発想は実行時なのでは? >てな具合に考えると auto で定義した方がコンパイル時の手間が少ない、 実行時の発想をコンパイル時に適用していいのでしょうか?
514 名前: mailto:sage [2019/02/18(月) 20:54:41.05 ID:aN2QSVsl.net] >>507 コンパイル時間を計測するのですか?…
515 名前: mailto:sage [2019/02/18(月) 20:57:23.82 ID:aN2QSVsl.net] >>512 賛成です、そういうのは1ラインを秘術を尽くして何とか読み込み、後で sscanf() とかを使うべき
516 名前:デフォルトの名無しさん mailto:sage [2019/02/18(月) 21:15:24.03 ID:JRPNr6+t.net] >>515 今回の例(>>493 ) のように可能な限り %d で抜き出して打ち切るとなると sscanf 単発では面倒 なんとか行単位でバッファに詰めた後 連続空白などでトークンに区切ってそのトークン単位で sscanf をぶんまわすような ほのかな中途半端感が
517 名前:デフォルトの名無しさん mailto:sage [2019/02/18(月) 21:20:31.62 ID:etvvcICH.net] >>513 別に実行時の発想じゃないでしょ 型を書けばコンパイラはその型名に対応する型を解決しなければならないし、 型変換の要否や可否のチェックも必要
518 名前: mailto:sage [2019/02/18(月) 23:19:20.43 ID:aN2QSVsl.net] >>517 >型変換の要否や可否のチェック これは10中8, 9 コンパイル時にすることなのでは?
519 名前:デフォルトの名無しさん mailto:sage [2019/02/18(月) 23:37:20.44 ID:Q29xkQ9H.net] >>518 初めからずっとコンパイル時間の話をしている。お前さんだけ噛み合ってないから、もう黙っててくれ。
520 名前:デフォルトの名無しさん mailto:sage [2019/02/19(火) 15:32:09.41 ID:Hz70ZqtS.net] C++です インクルードガードがあっても関数の定義がヘッダに書かれていればヘッダが複数回読み込まれていた場合リンク時に多重インクルードでエラーが出る ここまではわかるのですが、同じことをクラス関数で実験した結果エラーになりませんでした 具体的にはヘッダのクラス内に関数定義を書いて複数のファイルからインクルードしました これはどういうことなのでしょうか?
521 名前:デフォルトの名無しさん [2019/02/19(火) 16:00:36.20 ID:uP1odnYQ.net] >>520 クラス定義の中に書かれたメンバ関数の定義は 自動的にインライン関数になる(関数の実体の定義ではない) この場合は、複数の場所にメンバ関数の実体が作られるわけじゃない、 という説明でどうかな。
522 名前: mailto:sage [2019/02/19(火) 17:19:54.69 ID:BVj1SDNF.net] >>519 そもそも「実行時」「コンパイル時」の区別がついていないのでは、コンパイル時間の話なんかできないのでは? だから「実行時」「コンパイル時」どちらを適用するかに執着しているだけです
523 名前:デフォルトの名無しさん mailto:sage [2019/02/19(火) 17:23:21.85 ID:Hz70ZqtS.net] >>521 なるほど クラス内に定義を書くとインライン関数になって普通の関数としては扱われないんですね もう少し理解するために調べたのですが、インライン関数は内部リンケージのみを持つものとしてコンパイラに解釈されるらしいですね だからコンパイラはファイル間での関数の重複を調べようとしない そしてインクルードによって複数のファイルで同じものを読み込んだとしてもエラーにはならないと・・・ 理解です 勉強になりました ありがとうございました
524 名前:502 mailto:sage [2019/02/19(火) 17:39:36.16 ID:uP1odnYQ.net] 失礼、なぜか >>513 を見逃してて(黙殺するような意図はまったくなかった)。 C++ は関数を宣言・定義するときに返り値型を書くから auto で受けてもコンパイル時に曖昧さは生じないと考えたんだけど。 実行時まで返り値の型が決まらない関数って作れるんだっけ? これは純粋に質問、教えを乞いたい。 あんまり高度な話だと振り落とされるかも知れないけど。
525 名前:デフォルトの名無しさん mailto:sage [2019/02/19(火) 17:48:52.81 ID:h1wI7nx1.net] 型推論が実行時に行われるとかトンチキこいてるやつが一人騒いでるだけ
526 名前:デフォルトの名無しさん mailto:sage [2019/02/19(火) 18:43:18.16 ID:+3biNeIC.net] >>524 おそらく君の書いた「func()の返す型〜」をqz某が勝手に勘違いしているだけだからスルーしていいよ。 初心者が必ずしも正確な用語を使わないことくらい想像つくだろうし、文脈からして普通ならそんな勘違いはしないはずなのだが。
527 名前:はちみつ餃子 mailto:sage [2019/02/20(水) 00:20:40.27 ID:C98K3aY7.net] >>524 出来ない。 強いて言えば C++17 からは std::any があるけれど、 これはこれで実行時に型が決まるわけではなくて コンパイル時に std::any 型であることは確定する。
528 名前:デフォルトの名無しさん mailto:sage [2019/02/20(水) 00:28:15.76 ID:qDW9CRq2.net] >>523 > もう少し理解するために調べたのですが、インライン関数は内部リンケージのみを持つものとしてコンパイラに解釈されるらしいですね どこにそんな嘘書いてあった? https://timsong-cpp.github.io/cppwp/n4659/dcl.inline#footnote-94 > The inline keyword has no effect on the linkage of a function.
529 名前:デフォルトの名無しさん mailto:sage [2019/02/20(水) 00:47:02.04 ID:rsRaa5eC.net] >>528 IBMのサイトに書いてありました・・・ と思って今見返したらこれはIBMの統合開発環境のページなのでその開発環境の仕様かもしれないですね 失礼しました https://www.ibm.com/support/knowledgecenter/ja/ssw_ibm_i_72/rzarg/inline_linkage.htm >インライン関数は内部リンケージを持っているものとして処理されるので
530 名前:デフォルトの名無しさん mailto:sage [2019/02/20(水) 09:09:52.38 ID:qDW9CRq2.net] >>529 「C のみの始まり」〜「C のみの終わり」で囲まれているとおり、それはCの仕様だね。
531 名前: mailto:sage [2019/02/20(水) 19:50:21.82 ID:P8vN2pc3.net] >>528 それは inline キーワードで束縛された関数は、inline 展開される多数の実体と、外部リンケージによって外部からコールできるものとで別の実体をコンパイラは作成する、ってことですか まあ inline しまくって無駄にバイナリーを増やすくらいだったら、ついでに1 個の外部リンケージで呼べる実体を追加したって、いろいろな面で大差がない、とはいえますね
532 名前:デフォルトの名無しさん mailto:sage [2019/02/21(木) 01:44:35.45 ID:HXHB3ZEN.net] >>531 「それ」が何を指して言ってるのかよくわかんないけど、 inline 関数に対して インライン展開されてない「実体」を生成するのもしないのもコンパイラの自由。 外部リンケージを持つ関数について複数のコンパイル単位でアドレスを取って ==, != で比較した場合には一致させないといけないので、アドレスを取られた場合には そういうコード生成をするのが一般的だろうとは思う。
533 名前:デフォルトの名無しさん [2019/02/21(木) 14:52:33.25 ID:68lFGCx0t] 主にc++でJSON editor作ってみた mac専用だけどwww.quite-funny.com/
534 名前:デフォルトの名無しさん mailto:sage [2019/02/22(金) 22:57:05.70 ID:LZ/mWRas.net] 引数や関数にはconstつけられるところは全部つけるべきですか?
535 名前:デフォルトの名無しさん mailto:sage [2019/02/23(土) 00:51:14.65 ID:CdF18mGW.net] つけて問題ないならつけるべきだけど、まあ実際は面倒くさくなければという程度…
536 名前:デフォルトの名無しさん mailto:sage [2019/02/23(土) 10:37:02.21 ID:6erMuDJl.net] >>534 内部で書き換えないポインタや参照の引数には必ずconstをつけるべき。より自己文書化されるし、付けてないと使う側の手間が増える。>>535 は元javaプログラマ
537 名前:デフォルトの名無しさん mailto:sage [2019/02/23(土) 10:39:40.19 ID:Iy1q86mj.net] 今は良いけど、半年後の自分は既に他人だと思わないと
538 名前:デフォルトの名無しさん [2019/02/23(土) 11:45:29.73 ID:+DV3f+Dk.net] const連鎖まんどくせ
539 名前:デフォルトの名無しさん mailto:sage [2019/02/23(土) 12:40:33.73 ID:aRr2CtyI.net] 530みたいな質問する奴はそもそもconst気にする前に関数が長すぎたり 参照と実値渡しの違いもわかってないと思われるのでその辺をしっかりやった方が良い。
540 名前:デフォルトの名無しさん mailto:sage [2019/02/23(土) 17:32:16.44 ID:7GKXwuwj.net] 入門書の類が、最初のうちは const なしで説明しておいて、 本の後半でおもむろにポインタの引数に const つけることを 載せてたりするせいかもな。 高度な、マニアックな話題みたいな感じで。 文字列(charへのポインタ)を受け取る関数を紹介したら、 すかさず const char* の説明も合わせてすべきって気がする。 const の一般的な価値が分かれば、メンバ関数での func() const {...} の ありがた味もすぐ飲み込めて const つけまくり派になるでしょ。
541 名前:デフォルトの名無しさん [2019/02/23(土) 21:02:55.45 ID:kvfLWeS8.net] 戻り値を const char* してても、 char* const してなければさほど意味がない。
542 名前:デフォルトの名無しさん mailto:sage [2019/02/23(土) 21:20:57.14 ID:JpeZVvP/.net] それは質問なの初心者君?
543 名前:デフォルトの名無しさん mailto:sage [2019/02/23(土) 23:45:27.99 ID:Z+wYSHT9.net] クソミソみたいなjavaのconstと違ってC++のconstは コードの安全性を高めるのに必須といっていいぐらいのキーワード とりあえず片っぱしから全部const付けて、どう頑張ってもここは constはずさないと動くコードにできないよな・・ていうぐらいの 時だけはずす。このぐらいの気構えでコードを書けば、かなり安全な コードになってる。他のやつが書きかえちゃダメなものをいじろうと しても、強引なキャストでもしない限りどうやってもコンパイルが 通らなくなる。強引なキャストしてでも無理矢理強姦してくる強姦魔は そもそも犯罪者気質なのでそんなやつに仕事をやらせてる時点で間違い
544 名前:デフォルトの名無しさん mailto:sage [2019/02/23(土) 23:48:50.01 ID:Iy1q86mj.net] 「かなり安全な」 ここで思わず笑ってしまったではないか
545 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 00:00:52.25 ID:qLJosHl4.net] 残念ながらバカはmutable使い出すから無意味。
546 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 00:06:41.22 ID:2wDVhIfR.net] 俺は書換られたりはしない たぶんしないと思う しないんじゃないかな ま、ちょっと覚悟はしておけ
547 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 00:47:53.06 ID:ORSkBdqU.net] constっていちいち書くのめんどい
548 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 00:48:50.68 ID:haqs87u6.net] >>541 何を言ってるのか分かりません
549 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 01:15:50.47 ID:is7scwjD.net] いやまてまて・・このスレの99%はネタでできてるけど そこ分からないのはダメだぞ まさに初心者向けの話題ではある
550 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 07:21:28.17 ID:kwD2lttR.net] >>545 mutable使ったらいかんのか
551 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 08:50:14.25 ID:FFCpIhtq.net] こいつ能力低いなと思う奴のソースを見ると、 constなんて全く付いていない場合が多い
552 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 09:00:44.87 ID:eyx8DEIH.net] >>547 ちょっとわかるわw あと3文字くらいが良かった
553 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 09:02:28.69 ID:zE1f0a65.net] cnst
554 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 09:40:01.37 ID:4ommn3XM.net] constはキーボード入力の観点からはそんなに苦じゃない stdとかarrayが割りと入力しづらい 左右均等に割り振られてると楽な感じ
555 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 09:57:22.91 ID:FGRIaiAP.net] const char* a = "hoge"; const char* const a = "hoge"; の違いがわからんやつは死ねとよい
556 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 10:22:22.64 ID:qLJosHl4.net] そんな違いを意識しないと読めないコード書く方がバカだと思う。
557 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 10:24:20.55 ID:eyx8DEIH.net] (そんな初歩中の初歩でマウンティングドヤ顔して大丈夫っすか先輩)
558 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 10:37:36.70 ID:haqs87u6.net] >>549 >>548 のこと言ってるの? >>541 は、ポインタの指し先だけでなく、戻り値を格納する変数自体を定数にしなければさほど意味がないっていう主張だと理解したけど、合ってる? ローカル変数を定数化したければ呼び出し元が勝手にやればいいし、戻り値をconst char*にする重要性に比べたらそれをする必要性なんてごく僅かで"さほど意味がない"なんてとても言えないと思うけど
559 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 12:08:33.20 ID:6sZPiHms.net] >>555 ドヤ顔して噛むなよ
560 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 12:15:09.98 ID:sIV9Z0cV.net] C++ってC言語の負の遺産を引き継いだ言語だろ? constは廃止すべき
561 名前:デフォルトの名無しさん [2019/02/24(日) 15:05:59.28 ID:uFOuUY9d.net] constみたいな糞どうでもいい些末なことより 配列のサイズとオーバーフローの管理を強化するべきだったんだよ 互換性捨てなきゃならんが
562 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 15:35:26.16 ID:2tRfk65D.net] >>561 そこはCの負の遺産を引き継いだのではなく、可能な限り実行時オーバーヘッドを小さくする実装手段を提供するというCの基本スタンスを継承しただけだろう。それが負の遺産というなら他の言語の方が適切なんだからそれを選択すればいいよ。 C++を使いたく、ある程度の実行時オーバーヘッドが許容できるときはstd::vectorという選択肢があるけど、それじゃダメなのか?
563 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 16:47:00.15 ID:RgZ/0jGo.net] >>560 const に関しては C++ で新規導入された仕様を ANSI C に逆輸入、 みたいな感じじゃなかったっけ? そのせいか、定数としてconst変数を使えないとか中途半端になってる。 C++ が C の負の遺産を切り捨てるべきだったとしても、 const はその「C の負の遺産」の範疇に含まれないかと。 いずれにせよ、今さら言っても、現に存在する C++ はどうもならんよね。 そういう新プログラミング言語が出ても、それは C++ じゃない別物ってことで。
564 名前:デフォルトの名無しさん [2019/02/24(日) 16:57:30.90 ID:2fcQjxFq.net] そういうのはDで良いと思う
565 名前:デフォルトの名無しさん mailto:sage [2019/02/24(日) 17:18:54.78 ID:NUlc6EOn.net] とりあえず数値以外はconst参照渡しが基本でおk?