- 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/
- 855 名前:デフォルトの名無しさん mailto:sage [2019/04/16(火) 12:24:17.44 ID:uqcfe1Iw.net]
- わからない事をここで質問しようとレスを書いてる最中に「わかった!」
ってなることが多々あるんだが、この謎の現象は何なんだ・・・
- 856 名前:デフォルトの名無しさん [2019/04/16(火) 12:28:15.56 ID:4RjIOnLA.net]
- 自己解決パターン
質問するときに頭の中が整理される→解決 質問するために再現する必要最小限のコードを書く→問題の切り分けが出来る→解決 いろいろあるが
- 857 名前:はちみつ餃子 mailto:sage [2019/04/16(火) 13:21:34.50 ID:XnNfa6Fy.net]
- >>855
何が駄目なのかわかれば解決法は自明であることが多い。 逆に言えば、解決法がわからないときは問題が何であるかわかってなかったりするんだよ。 だから、きちんとした形に質問をまとめれたなら、それはもうほとんど解答でもあるんだ。 この手法を利用してバグを取り除くやり方としてラバーダックデバッギングというものが知られている。
- 858 名前:デフォルトの名無しさん mailto:sage [2019/04/16(火) 13:51:09.84 ID:WfxisTJA.net]
- C++erならRust学べって風潮嫌い
なんで学習コストがある言語を2つも学ばないといけないのかと思うし
- 859 名前:847 [2019/04/16(火) 17:31:42.92 ID:xjyBK9QH.net]
- >>853
あんまり大それた意見とではなくて void func() { int &a; ... } と宣言したら、参照先不明の &a を作ろうとしてるから 必ずコンパイルエラーになるじゃろ、程度の指摘。 …ただ、この投稿を書こうとして気がついたんだけど、 class samp { int &a; ... }; てな具合に、クラスのメンバとしての宣言ならエラーにならないね。 ちゃんとコンストラクタで a に参照先を与えるなら許される。 要するに >>851 の前半部分は間違ってた、ということ。 正しい場合もあるけど、常に正しいわけじゃない。
- 860 名前:デフォルトの名無しさん [2019/04/16(火) 17:55:46.56 ID:LqBdGBd1.net]
- その場合でもコンストラクタで初期化してなかったらエラー出るんだから
説明自体は間違ってない
- 861 名前:デフォルトの名無しさん mailto:sage [2019/04/16(火) 21:38:13.69 ID:5Rly8M3u.net]
- >>857
テディベアをおいておくというエピソードなら有名だね
- 862 名前:デフォルトの名無しさん mailto:sage [2019/04/16(火) 22:14:36.94 ID:dFuxCqAG.net]
- >>858
難しいことも違った方向から見るとわかりやすくなることもある。
- 863 名前:デフォルトの名無しさん mailto:sage [2019/04/19(金) 11:24:45.99 ID:qKKG75KJ.net]
- 質問です。
cinの戻り値のistream&がなんでif(cin)みたいに真偽判定に使えるのかが発端です。 https://stackoverflow.com/questions/8117566/why-istream-object-can-be-used-as-a-bool-expression こことか見たんですけど、 1.istreamはbasic_iosを継承してて、 2.basic_iosで型変換演算子explicit operator bool() const;が定義されてる ってとこまでは理解しました ここからが質問なんですけどこの型変換ってのは勝手に行われるもんなんですかね if(something)って書いたらif(bool(something))っていつもやってるんでしょうか
- 864 名前:デフォルトの名無しさん [2019/04/19(金) 11:40:22.57 ID:ymX8VCBl.net]
- intで参照したらEOF
- 865 名前:デフォルトの名無しさん mailto:sage [2019/04/19(金) 12:05:08.07 ID:r9r2BfdP.net]
- 型変換以前に0やnullポインタを評価するとfalse、0以外の値はtrueと評価されると決まっているからだろ。
あと暗黙の型変換はよく起こる。
- 866 名前:デフォルトの名無しさん mailto:sage [2019/04/19(金) 12:08:35.86 ID:lgg24wim.net]
- if 文の条件判定部は bool 型を要求してる前提で解釈,翻訳してるんじゃない
- 867 名前:はちみつ餃子 mailto:sage [2019/04/19(金) 12:13:29.89 ID:mypEidUJ.net]
- >>863
yes. 条件部はブールを要求し、もしブールでない場合は常に型変換する。
- 868 名前:デフォルトの名無しさん mailto:sage [2019/04/20(土) 09:49:03.76 ID:9bTTnEnG.net]
- 前橋和弥さんのC言語ポインタ完全制覇という本で、
PCの環境(CPUの種類など)によってデータのメモリ上の配置は異なる (構造体のパディングをはじめ、ただの単体のintでさえバイトオーダーが異なる(ワークステーションではビッグエンディアン採用だったりする)) ので、メモリの内容をバイナリでディスク上のファイルに出力したデータは別環境で読み込んで使おうと思ってはいけない というような事が書いてありましたが、この話はWindows以外の環境や古い環境を前提とした話なのでしょうか? 同書にWindowsではBMPファイルをfwriteでファイルへダンプしていていかにもWindowsらしいとも書いてあるので、 Windows環境ならゲームのセーブデータとしてクラスをまるごとfwriteでバイナリ出力したファイルを別PCでロードしても問題ないのでしょうか? (Xeonとかワークステーションマザーとか関係なしに、IntelCPU&Windowsの環境ならばリトルエンディアンで統一されている?) (Macではビッグエンディアンになるが、Windows環境のみ対応のゲームを作る上では無視してよい?) という認識は間違っているでしょうか? パディングの違いなどもWindowsやVisualStudioが自動で良きに計らってくれるのならありがたいのですが…
- 869 名前:デフォルトの名無しさん mailto:sage [2019/04/20(土) 09:54:32.44 ID:gSzU4BUh.net]
- windows間だから「別環境」ではなく「同じ環境」
だからwindowsでも同じ そのbmpデータをmacに持って行っても使えない なので磁気コアをダンプして永続化したようなデータは、他の全ての環境で使えない 60年代くらいから知られている
- 870 名前:デフォルトの名無しさん mailto:sage [2019/04/20(土) 12:00:13.06 ID:9bTTnEnG.net]
- >>869
Windows環境であれば、別PC(別ハード)でも同環境とみなして良いのですね >>WindowsではBMPファイルをfwriteでファイルへダンプしていていかにもWindowsらしいとも書いてある 読み直したら、違ってましたm(_ _)m 可変長構造体の節で、 WindowsではBMPをfwriteなどで可変長構造体まるごとダンプしていて、 BMPのような他の環境にもっていく可能性が高いファイルを構造体まるごとダンプしているのがWindowsらしい というような内容でした Windows級の一流プログラマーでも構造体まるごと出力を使っているのであれば、 ゲームのセーブデータで構造体やクラスをまるごとバイナリ出力しても問題ないととらえてよいのかな?
- 871 名前:デフォルトの名無しさん mailto:sage [2019/04/20(土) 12:30:10.75 ID:4KhiFNHT.net]
- >>870
bmpファイルには仕様があるので「Windowsのプログラマがどうたら」なんぞ関係無く仕様に従って読み書きすべし (現実には仕様に従わない入出力をやらかすアプリ毎に対処することはあるが) 自分で定義した構造体でも外部に公開するなら仕様を決めそれに準ずるべし 公開しないならそれこそ構造体丸ごとダンプなり好きにすれば良い 実際にそういう実装は珍しいものじゃない どうせ環境の変化で困るとしてもそれは自分だけだからね
|

|