どこかのだれかへ

職業ゲームプログラマ。気になったニュースのピックアップや開発日記などを書いています。

C++

定数でdefine使ってる場所があって大変だった

とあるヘッダーファイルをインクルードしたら、Enumの定義の1つがエラーになった。 エラー内容的に、どうも定義が重複しているらしい。 でも名前空間結構深いし、名前空間の名前もユニークで、インクロードガードもある。重複することなんてあるのか? そん…

コメント最後のドットとダメ文字

C++

同じチームにコメントの最後にドットを付ける人がいて気になったので調べたんですが、これはダメ文字対策らしいです。 ShiftJISにおいて文字の2バイト目が制御文字(バックスラッシュとか)とかぶっていると、コンパイラがミスって想定外の動作になってしま…

STLコンテナで使えるアロケータ

C++

独自アロケータを作って、それをstd::vector内でのメモリ確保に独自アロケータを使用する方法に関して、記事を書きました。 STLコンテナで使えるアロケータ もうこれでstd::string怖くない! (うちのアロケータは貧弱で小さいサイズのアロケートに弱いです…

chronoライブラリで時間を計測する

C++

c++11で追加されたchronoライブラリで時間計測する方法に関して書きました。 時間を取得、計測する

Visual Studioで.cppをデフォルトでUTF-8にする

C++

記事追加しました! テンプレートファイルをいじる方法と拡張機能の2つの方法を紹介しています。 Visual Studioで.cppをデフォルトでUTF-8にする C++カテゴリに入れるかは迷ったんですけど、まあC++関連だしとりあえずぶち込んだ次第。

std::alignに関しても追記しました

C++

以前、アライメント調整に関して書きましたが、最近std::alignの存在を知ったのでそれに関しても追記しました。 アライメントを考慮したサイズの取得

アライメントを考慮したサイズの取得

C++

C++でアライメント考慮のサイズを取得する場合の方法に関して、記事を追加ました。 アライメントを考慮したサイズの取得

C++でautoばっかり使うのは止めてくれないか?

C++

新人さんのコードに多いんですが、autoばっかり使ってて可読性が最悪な場合があるので、使いどころを考えて欲しい時があります。 コードを見ているときにautoが来ると右辺値で型を考えなきゃいけません。 右辺値が関数の時とか最悪で、その関数調べて戻り値…

2の累乗かどうかの判定

2の累乗ということは、ビット演算的には1が一つだけの状態です。 2の累乗の場合、 -1すると繰り下がって下位ビットが全部1になるため、AND演算すると0になります。 2の累乗以外なら、 -1しても桁下がり発生しないため、AND演算にすれば1以上になります。 た…

alignによるアライメントの変化で思ってたsizeofと違う結果になった

事の発端 頂点データを設定したが、うまく描画されず調べてみるとVertex構造体のサイズが思ってたのと違う! struct Vertex{ Vector4 pos; Vector2 uv; }; std::cout << sizeof(Vector4) << std::endl; // 16 std::cout << sizeof(Vector2) << std::endl; //…

Doxygenで出力されるドキュメントを確認

家でC++のコードを書く時はコメントをDoxygen(JavaDocスタイル)で書いている。 ふと普段書いているスタイルでちゃんとドキュメント化されるてるのかが気になったので、確認用にプロジェクトを作ってみた。 GitHub - Tepp91/TryDoxygen P.S. なんとなく開発…

今日見たクソース

// ...を確認する bool CheckHoge(); bool TestHoge(); bool CheckHoge() { // 略 } bool TestHoge() { // 略 } 同じようなやつが2つ合って違いが分かりづらかった。

OpenGLやDirectXでのデバッグ表示のためのGUI

ゲームを作っていると欲しくなるのが、デバッグ表示。簡単なテキストであれば、適当に画面に表示しておけば良いのだけれど、出来ればちぇっくぼっくすやらツリー表示とかもしたい。こんなときに使う、OpenGL、DirectX向けのGUIライブラリというのが世の中に…

【C++】テンプレート引数の異なるクラスの扱い方

C++で異なるテンプレート引数を関数の引数とかに取るやり方はInlineなら知っていたけど、それをどうやってクラスの外に出せば良いかわからなかったので、メモっておく。

独自ListクラスのついでにIteratorも実装したい

std::listはアロケーションが発生して無駄な場面が時折あるので(例えば描画コマンドとか)独自のリストクラスを作成中。その中でstd::iteratorも実装している。 昔なら面倒で実装しなかったが、C++11になってfor-eachも使えるようになった。std::iteratorを…