const_string的全部要点是避免在不应该更改字符串的情况下进行不必要的复制。但是,在某些情况下,您不能保证const char *源的生存期超过const_string,例如,如果使用const_string作为映射的键,如果某些const char *被回收,您将感到非常有趣。细分错误,您可以提前进行调试。有没有办法告诉const_string,嘿朋友,请保留此const char *的私有副本?还是std :: string?我将参考a previous question,以便您了解我的追求。 最佳答案 还有什么不起作用?通过查看代码(文档最多为中等水平),我可以看到const_string(charp)(而不是const_string(boost::cref(charp))为charp的char*应该复制数据。另一种可能性是使用构造函数(请参见const_string(Iterator begin, Iterator end)第153行的const_string_storage的两个参数的构造函数)他们甚至在测试中使用临时的storage.hpp初始化std::basic_string(说实话,我还没有运行过它),因此它应该可以正常工作。关于c++ - const_string作为映射键;制作缓冲区拷贝?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9453302/
10-13 01:29