2012-03-29 19 views
4

私はアプリケーションを実装するためにBoostライブラリを使用します。私のアプリケーションのデータモデル内のすべての文字列文字はワイド文字(wchar_t型)です。しかし、ブーストライブラリでは、いくつかのクラスは狭いchar(char型)を渡すだけです。つまり、「address boost::asio::ip::address::from_string(const char* str)」です。だから、私はstd :: stringとstd :: wstringの間の変換をブースト関数を呼び出すときに行う必要があります。ブーストのwstring文字列コンバータ

  1. 文字列の変換によるパフォーマンスの問題はありますか?
  2. Boostのコンバータは、std :: wstringとstd :: stringの間の変換を良好なパフォーマンスで行いますか?

UPDATE

変換機能に関する。私は以下のコードが動作することを知っています。

std::wstring wstr(L"Hello World"); 
const std::string nstr(wstr.begin(), wstr.end()); 
const std::wstring wstr2(nstr.begin(), nstr.end()); 
+3

あなたのワイド文字列にASCII以外の文字が含まれていないことを願っています。 – Eugene

答えて

3

自分自身で研究の結論を追加してください。

文字列変換のパフォーマンスオーバーヘッドについて私は上記の関数にデバッグしました。変換はC-cast charによってcharによって実装されます。時間複雑度はO(L)、Lは文字列の長さです。私のアプリケーションでは、変換する必要がある文字列はあまり長くありません。だから私は変換のために明らかにパフォーマンスの待ち時間があるとは思わない。

関連する問題