タグ

ブックマーク / fimbul.hateblo.jp (2)

  • Cプリプロセッサ(with Boost.PP)で簡単な言語処理系を実装しよう - ここは匣

    この記事は、C++ (fork) Advent Calendar 2013の10日目の記事です。 はじめに 12月に入って10日目、もう中旬ですね。 連日C++に関するハイレベルな記事が目白押しで消化不良になってきている方々も居らっしゃると思いますので少し趣を変えて息抜きみたいな記事にしようと思います。 実行時処理やコンパイル時処理(TMP, constexpr)は並列処理の実装やコンパイル時言語処理系など他の方々が既に強烈なネタを披露してくれていますし、自分も前回主催した勉強会でそこそこTMPのネタを放出してしまったので、 今回はC++コードをコンパイル前に処理する段階、プリプロセス時の言語とその処理系であるCプリプロセッサに関するネタでいきたいと思います。 TMPに関するネタは前回の概ね前回自分主催の勉強会の資料 にまとまっているので興味のある方はこちらも読んでいただければ幸いです。

    Cプリプロセッサ(with Boost.PP)で簡単な言語処理系を実装しよう - ここは匣
  • C++11 スマートポインタの話 - ここは匣

    C++にはガーベジコレクタが言語的には存在しないので、動的に確保したオブジェクトのメモリの管理はプログラマが責任を持って管理しなければ、メモリリーク・リソースリークなどの問題を生じてしまいます。 今時のプログラマはこうした問題を引き起こすリスクを減らす為に、記述ミスの起こりやすい生のポインタを使い自力でnewとdeleteを記述する事を避けて、安全なスマートポインタ、即ちオブジェクトの寿命により自動的にメモリ解放を行う便利なポインタを利用するべきです。 しかし、スマートポインタと言っても種類が幾つかあり、落とし穴も存在するのでどういった状況でどれを利用するのが良いのかを考察してみます。 Dynamic memory managementを見てみても C++11から随分増えていますね http://en.cppreference.com/w/cpp/memory std::auto_ptr

    C++11 スマートポインタの話 - ここは匣
  • 1