digitalmars.D.learn - to!(ubyte[])("")
- simendsjo (24/24) Jun 22 2012 Bug or by design? (using dmd head)
- Kenji Hara (15/22) Jun 22 2012 [snip]
Bug or by design? (using dmd head)
import std.conv;
void main() {
     to!(ubyte[])("");
}
std/array.d(493): Attempting to fetch the front of an empty array of  
immutable(char)
----------------
to(_d_assert_msg+0x45) [0x43700d]
to( property dchar  
std.array.front!(immutable(char)[]).front(immutable(char)[])+0x4c)  
[0x42f2b8]
to(ubyte[] std.conv.parse!(ubyte[], immutable(char)[]).parse(ref  
immutable(char)[], dchar, dchar, dchar).void  
parseCheck!(_D3std4conv17__T5parseTAhTAyaZ5parseFKAyawwwZAh1sAy
).parseCheck(dchar,  
immutable(char)[], ulong)+0x2f) [0x43482b]
to(ubyte[] std.conv.parse!(ubyte[], immutable(char)[]).parse(ref  
immutable(char)[], dchar, dchar, dchar)+0x49) [0x42f50d]
to(ubyte[] std.conv.toImpl!(ubyte[],  
immutable(char)[]).toImpl(immutable(char)[])+0x31) [0x42f619]
to(ubyte[]  
std.conv.to!(ubyte[]).to!(immutable(char)[]).to(immutable(char)[])+0x20)  
[0x42f268]
to(_Dmain+0x1a) [0x42f242]
 Jun 22 2012
On Friday, 22 June 2012 at 09:18:38 UTC, simendsjo wrote:
 Bug or by design? (using dmd head)
 import std.conv;
 void main() {
     to!(ubyte[])("");
 }
 std/array.d(493): Attempting to fetch the front of an empty 
 array of immutable(char)
[snip]
It is design. With the conversion from string to non-string type, 
std.conv.to runs parsing.
import std.conv;
void main()
{
     auto arr = to!(ubyte[])("[1,2,3]");
     // parse given string as a representation of ubyte[] value.
     assert(arr == [1,2,3]);
}
And, the representation string of a value should have one or more 
characters.
So empty string always throws exception.
Kenji Hara
 Jun 22 2012








 
  
  
  "Kenji Hara" <k.hara.pg gmail.com>
 "Kenji Hara" <k.hara.pg gmail.com>