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*のコピーを作成する必要があります。別の可能性は、コンストラクターを使用することですconst_string(Iterator begin, Iterator end)。153)const_string_storagestorage.hpp

std::basic_string彼らはテストで初期化するために一時的なものを使用することさえありますconst_string(正直なところ、私はそれを実行していません)ので、正常に動作するはずです。

于 2012-02-26T13:21:44.167 に答える