potisanのプログラミングメモ

趣味のプログラマーがプログラミング関係で気になったことや調べたことをいつでも忘れられるようにメモするブログです。はてなブログ無料版なので記事の上の方はたぶん広告です。記事中にも広告挿入されるみたいです。

WIL GitHub Wiki string_makerの和訳・改変

MicrosoftがGitHubでMITライセンス公開しているWILのGitHub Wikiの記事を和訳・改変したものです。素人による翻訳なので、誤訳や著作権上の問題などありましたらご連絡いただけますと幸いです。

string_maker

Raymond Chen、2020/1/24、リビジョン1個

wil::details::string_makerUnicode文字列の作成に使われる内部テンプレート型です。

template<typename string_type>
struct string_maker<string_type>;

サポートする型

string_makerstring_allocatorを持つ任意の文字列型をサポートしています。

  • unique_process_heap_string
  • unique_hlocal_string
  • unique_hglobal_string
  • unique_cotaskmem_string
  • unique_midl_string

以下の文字列型もサポートしています。

  • unique_hstring
  • std::wstringstl.hが必要)

メソッド

HRESULT make(_In_reads_opt_(length) PCWSTR source, size_t length) noexcept;

length長の文字列(加えてnull終端)を保持できる文字列のメモリを確保します。

sourceがnullではない場合、メモリはsourceで初期化されます。

sourcenullptrの場合、メモリはゼロ初期化されます。

makeの複数回呼び出しは適切です。以前のバッファーは解放されます。

wchar_t* buffer();

makeで確保したメモリのポインタを返します。呼び出し側はlength文字を限度としてこのバッファーにデータを入れることが期待されます。

string_type release();

makeで確保したメモリを文字列に変換して返します。string_makerは空状態に戻されます。

static PCWSTR get(string_type const& value);

既存の文字列オブジェクトからnull終端文字列バッファーへの正確なポインターを取得する静的関数です。

著作権表示

この記事は以下の著作物を使用しています。

Copyright (c) Microsoft Corporation. All rights reserved. https://github.com/microsoft/wil/blob/master/LICENSE