Open m-tmatma opened 5 years ago
必要なら _work_itow
自体をC++標準に置き換えてしまってはどうでしょうか?
*profile = std::to_wstring(value);
標準で使える数値→文字列変換はそんなに速くなかった気がするので、 スピードを気にするなら以前beruさんが作ってくれたテンプレ関数を再利用するのが良いように思います。
value_to_profile 側でローカル変数として文字列用のバッファを用意すれば再入可能にできる。
この書き方だと後者の実装を想定してると思いますが、
前者 std::wstring
のほうがより直観的なコードだと思います。
CDataProfile::_work_itow で static 変数が定義されていて、そのアドレスを返している。
https://github.com/sakura-editor/sakura/blob/72c87d521f0301a9bda813764355ced7dccdd9bc/sakura_core/CDataProfile.h#L83-L89
呼び出し元で value_to_profile で渡された profile にデータコピーしている。 _work_itow の static 変数が使われるのは一瞬だが、実体が一個なので再入可能ではないコードに なっている。
https://github.com/sakura-editor/sakura/blob/72c87d521f0301a9bda813764355ced7dccdd9bc/sakura_core/CDataProfile.h#L109-L112
value_to_profile 側でローカル変数として文字列用のバッファを用意すれば再入可能にできる。