0

const_string的重点是避免在不应该更改字符串时进行不必要的复制。

但是,在某些情况下,你不能保证 const char* 源的生命周期比 const_string 长,例如,如果使用 const_string 作为映射的键,如果某些 const char* 被回收,你会很有趣提前调试的分段错误。

有没有办法告诉 const_string,嘿朋友,请保留这个 const char* 的私人副本?还是 std::string?

我将参考上一个问题,以便您了解我在追求什么。

4

1 回答 1

1

什么不起作用?通过查看代码(文档充其量是平庸的),我可以看到const_string(charp)(而不是const_string(boost::cref(charp))应该charp复制char*数据。另一种可能性是使用构造函数。(参见inconst_string(Iterator begin, Iterator end)的双参数构造函数,行153)const_string_storagestorage.hpp

他们甚至在他们的测试中使用临时std::basic_string来初始化const_string(老实说我没有运行它),所以它应该可以正常工作。

于 2012-02-26T13:21:44.167 回答