null 文字で分割する

あまりないと思いますが MULTI_SZ と格闘する時とかは null 文字で文字列を分割したい、ということがあるかもしれません。
一々 std::find 使って書くのは面倒なので、boost が使えるなら boost::algorithm::split を使っておきましょう。
しかし何も考えずに以下のようなコードを書くとよくない。

boost::algorithm::split(reuslt, str, boost::is_any_of("\0"));

is_any_of が null 文字を文字列終端として見てしまうからですね。適当な predicator でごまかしましょう。まあ is_from_range とかでいいと思います。

boost::algorithm::split(reuslt, str, boost::is_from_range('\0', '\0'));

実装考えれば確かに、という感はありますが、ちょっとした罠ですね。他にも null 文字含むリテラル使って書くようなパターンで同じ問題が発生するはずなので、気をつけましょう。
おしまい。