定数的文字列同士の加算(?)が出来ません。
コード:
Dim A$ As String
A$="test"+"ahya"
【"test"+"123" などのLPSTR型のポインタ同士をStringオブジェクトとして認識しない】
演算子オーバーロードの特性上、+演算子から見て左の項にString型オブジェクトがなければなりません。となると、最悪 "test" + StrObj などの演算が行えなくなるのでは!?といった問題が生じますが、β4では要求値がStringオブジェクトの場合は文字列リテラルをStringオブジェクトとして扱うようにしようかと考えています。
ようは、下記のようなケースでリテラル文字列とリテラルStringオブジェクトを識別していこうという考えです。
コード:
Dim obj As String
obj="test"+"123" '"test" 及び "123" をString型オブジェクトとして扱う
コード:
Dim buffer As LPSTR
buffer="test123" '"test123" をリテラル文字列として扱う
因みに、ここで言うリテラル文字列とは、プロセスメモリ内に用意されるByte型配列データへのポインタになります。当然ながら、Stringオブジェクトは処理にオーバーヘッドを伴うので、高速文字列処理が必要なときはLPSTRやリテラル文字列を扱うことで回避できると考えています。