std::stringのend()って、
必ず末尾のNULL部分なのでしょうか?

>char cLast = *(SBuf.end());
>if (cLast == 0) {
> cLast = *(SBuf.end() -1);
>}

みたいな処理を書いていますが、コンパイラによっては、
1行目で吹っ飛びます(><)