System.AnsiStringT
C++
class RTL_DELPHIRETURN AnsiStringT : public AnsiStringBase
プロパティ
種類 | 可視性 | ソース | ユニット | 親 |
---|---|---|---|---|
class | public | dstring.h | System | System |
説明
AnsiStringT は、Delphi の long 文字列型に相当する C++ の型です。
AnsiStringT は、テンプレート クラス AnsiStringT<CodePage> のすべてのインスタンスに共通するメソッドやメンバの定義場所となります。 AnsiString 自体は typedef で定義されているもので、AnsiStringT<0> と同等です。 AnsiStringT を直接使用しないでください。
AnsiStringT は、コード ページが指定されている Delphi AnsiString を処理する際に使用されるテンプレート クラスです。
Delphi では複数の文字列型を使用します。 重要な長い文字列型の 1 つは一般に AnsiString と呼ばれています。 この型に対するサポートには、次の機能が備わっています:
- 使用可能なメモリと同じ大きさの文字列が可能です。
- 共有参照を通じてメモリの効率的な使用が保証されます。
- ルーチンおよび演算子は現在のロケールに基づいて文字列を評価します。
AnsiStringT は、各特定のコード ページ用にコードを保持するテンプレート クラスです。 AnsiStringT という名前が付いていますが、これは ANSI 文字セットに限定されるわけではなく、マルチバイト文字セットや Unicode 文字セットなど、現在のロケール定義でサポートされている任意の文字セットを使用できます。
初期値が割り当てられていない AnsiStringT 変数には、長さ 0 の文字列が格納されています。
C++ ストリーム演算子(<< と >>)を AnsiStringT と使用するには、iostream を、system.hpp をインクルードする前に使用し、AnsiStringT::c_str() を使って、内部文字列表現を返す必要があります。 ストリーム演算子で AnsiString を使用する例を次に示します。
#include <iostream>
#include <system.hpp>
int main() {
AnsiString HelloStr = "hello";
std::cout << HelloStr.c_str();
}
メモ: Delphi でも、AnsiString をサポートしていますが、クラスではなく、プリミティブ型として実装しています。 デフォルトでは、文字列型として宣言されている変数は UnicodeString になります。