【MQL4】structでのstringの扱いが変わっていた

最近EAを作っていて気づいたのですが、どうやら一昔前と言語の仕様で変わったところがありました。

私の記憶だと、以前は以下のようなコードはエラーになっていたはずです。

struct Order {
   int ticket;
   string symbol;
   double price;
   double sl;
   double tp;
};

詳しい症状は覚えていないのですが、string型の変数が構造体に含まれているとエラーが出て正しく動作しないケースが以前はありました。

そこでは以前は、string型を使わずにuchar型の配列を使って文字列を扱っていました。

struct Order {
   int ticket;
   uchar symbol[10];
   double price;
   double sl;
   double tp;
};

void setSymbol(string value, uchar &array[])
{
   StringToCharArray(symbol, array, 0, WHOLE_ARRAY, CP_ACP);
}

string getSymbol(uchar &array[])
{
   return(CharArrayToString(array));
}

どうやら最新のバージョンではこのような手間がかかるコードを書かなくてよくなったようです。

arrow_upward