タグ

ブックマーク / melpon.hatenadiary.org (3)

  • C++03 と C++11 の互換性 - melpon日記 - HaskellもC++もまともに扱えないへたれのページ

    C++03 と C++11 ってどれぐらい互換性があるのかなーと気になっていたんだけど、仕様書の §C.2 を見てみたらずばりなものが載っていたので、一通り読んでみた。 C++03 のコードを C++11 として動かそうとしたときにコンパイルエラーやランタイムエラーが発生したら、これを確認してみるといいかも。 新しい文字列リテラル R, u8, u8R, u, uR, U, UR, LR という新しい文字列リテラルが追加されたため、文字列と一緒にこれらのマクロを使った場合、互換性の無いコードになる可能性がある。 例えば以下のコードは互換性の無いコードである。 #define u8 "abc" const char* s = u8"def"; // C++03 なら "abcdef"、C++11 なら "def" になる ユーザはこの手の短いマクロをよく使うため、この問題はよく発生しそうに見

    C++03 と C++11 の互換性 - melpon日記 - HaskellもC++もまともに扱えないへたれのページ
  • C++ でのビルド時間を短縮するいくつかの方法 - melpon日記 - HaskellもC++もまともに扱えないへたれのページ

    ある程度大きな C++ のコードを書いたことがある人なら大抵はこの問題について考えますよね。まして Boost なんて使っていた日には「コンパイル時間が Boost される」とか言われる訳です。 コンパイル時間を活用してコーヒー入れたりトイレ行ったりブラウジングしたり Twitter に「リビルドなう」とか Post したりといった素晴らしい方法もありますが、ここではビルド時間を短縮する方法を考えていきます。 事前知識 多分どこでも言われてることだと思いますし、結構適当に書いてるので読み飛ばしてもいいと思います。 コンパイルが遅い原因 C++ のコンパイル時間の多くは、プリプロセッサにあります。プリプロセス時に行われる include やマクロの展開でかなり多くの時間を取っています。 きっと Boost.PP なんて使っていた日には「コンパイル時間が Booooooooooooooooos

    C++ でのビルド時間を短縮するいくつかの方法 - melpon日記 - HaskellもC++もまともに扱えないへたれのページ
  • ゲームエンジン作ってる人と話してきた - melpon日記 - HaskellもC++もまともに扱えないへたれのページ

    自作するよりそこら辺にあるゲームエンジン使った方がいいんじゃない? という質問をしたところ、こんな感じの答えが返ってきました*1。 いくつかのゲームエンジンを使ったことあるが、あれをまともに使いこなすには数年掛かる。そしてそこから中身がどうなっているか想像して最適なデータにしたりといった細かなことを覚えていくのにさらに数年掛かる。そしてそれを他の人へ教えないといけないが、自分の理解がゲームエンジン製作者の考えと合っているのかどうかも怪しいため、他人に教えるのが非常に難しい。 能力のある人は、そんなものを覚えるより自分でゲームエンジンが作った方が早い。あれはゲームエンジンを作る能力の無い人が使うためのものだ。そういう人は既存のゲームエンジンを使えばいい。 更に良くないことに、ゲームエンジンはバージョンを上げるときに破壊的変更をすることが多いので、軽はずみにバージョンを上げられず、上げなければ

    ゲームエンジン作ってる人と話してきた - melpon日記 - HaskellもC++もまともに扱えないへたれのページ
  • 1