誰も私にその理由を説明できますか?simple code valgrindはthisを返します。memcpyのソースブロックと宛先ブロックが重複しています。
最初の問題はboost:regexです。私は(オプションのマッチングのための)疑問符付きサブパターンを使用する場合valgrindのは戻ります:
Source and destination overlap in memcpy (line 8)
第二の問題は、のstd ::文字列::消去です。
私は何が間違っているのか分かりません。
誰も私にその理由を説明できますか?simple code valgrindはthisを返します。memcpyのソースブロックと宛先ブロックが重複しています。
最初の問題はboost:regexです。私は(オプションのマッチングのための)疑問符付きサブパターンを使用する場合valgrindのは戻ります:
Source and destination overlap in memcpy (line 8)
第二の問題は、のstd ::文字列::消去です。
私は何が間違っているのか分かりません。
厳密に移植するために、memmove
を使用する必要がある場合、ライブラリコードのようなものがmemcpy
を使用しているようです。
std :: stringのようなコンパイラのライブラリについては、他のコンパイラに移植する必要がなく、特定の実装がどのように機能するかについての知識を使用できるため、おそらく大丈夫です。
ブーストライブラリでは、おそらく彼らは彼らが何をしているのかを知っていることを信頼する必要があります。ライブラリにはさまざまなコンパイラの設定があり、でもには特定のg ++拡張子を使用することがあります。
私はあなたが間違っているとは思わない。これは正規表現ライブラリの最適化によるものだとは思いますが、私はこれをコメントとして残しておきます。 –