main.d(61): Error: temp_[i_] isn't mutable

Ali Çehreli acehreli at yahoo.com
Sun Jun 20 10:56:11 PDT 2010


Ben Hanson wrote:
> == Quote from Justin Spahr-Summers (Justin.SpahrSummers at gmail.com)'s
>> "string" is actually an alias for "immutable(char)[]" (and
> similarly for
>> the other string types), so its contents are not modifiable, though
> its
>> length can be adjusted and contents appended. If you need to be
> able to
>> modify the characters, just use char[] instead. You can then use the
>> .idup property to get a string afterward.
> 
> I'm converted temp_ to CharT[] as suggested, but the conversion back
> to a string is failing:
> 
> _charset = temp_.idup;
> 
> main.d(76): Error: cannot implicitly convert expression (_adDupT((&
> D58TypeInfo_AT4main14__T5regexTAyaZ18basic_string_token5CharT6__initZ),cast
> (string)temp_)) of type immutable(CharT)[] to string


Would it work for you if the regex template took the character type 
instead of the string type?

The relevant lines:

template regex(CharT)
{
// ...
     alias CharT[] StringT;
     StringT _charset;
     enum size_t MAX_CHARS = CharT.max + 1;
// ...
         _charset = squeeze(_charset.idup).dup;

And then, in main:

	regex!(char).basic_string_token token_;

Ali


More information about the Digitalmars-d mailing list