技術 - C++

コンピュータシステムの理論と実装(3)

昨日はVMのStaticsTestを通すことができた。 StaticsTestはStaticセグメントへのリードライトのテストで、staticセグメントのスコープがちゃんと処理できているか?のテストだと思う。 初め、処理が全部終了しても、staticセグメントからスタックにとってき…

ファイル読み切ったあとのstd::ifstream::seekg()がうまく動かない

少し前に悩んでました。 ファイル終端まで読み切るとeofフラグが立ってしまうから、そのままだとシークできないみたいです。 一旦ifstream::clear()をしてフラグを落としてやればシークできるようになりました。 どうもファイル終端まで一度読んでしまうと、…

「低レイヤを知りたい人のためのCコンパイラ作成入門」の進捗

低レイヤを知りたい人のためのCコンパイラ作成入門をまたぼちぼちやっていました。 github.com 前回から結構色々実装しました。 関数呼び出し 関数定義(6引数まで) *演算子と&演算子 変数宣言 ポインタの計算 sizeof演算子 配列 []演算子 難しかったところ…

新たに定義した構造体をstd::setに入れる方法

普段、整数型(int型やlong型、long long型など)やstd::stringクラスくらいしか入れないのですっかり失念していたのですが、std::setクラスに自分で定義した構造体を入れるようにしたらコンパイルエラーになりました。たぶんstd::mapでも同じなんじゃないか…