void func(const std::string& cmd)
{
 std::string tmp = cmd + "\r\n";
 do_exec(tmp.c_str());
}

このような書き方をすると、エラーになるのですが間違いなのでしょうか?
tmpには一時オブジェクトのコピーが入るはずなので、安全だと思っていたのですが。
ちなみに、

std::string tmp = cmd; tmp += "\r\n";とすると正常に動作するようです。

VC++6.0 STLPort 4.51