digitalmars.D - Proposal: type suffix for string and character literals
- Michael Butscher (31/31) Jun 17 2005 Hi,
- Derek Parnell (7/13) Jun 17 2005 How many times has this been proposed or asked for now? I've lost count.
- Chris Sauls (17/18) Jun 17 2005 Too many. Maybe Walter should just go ahead and implement it, then the ...
Hi, the following code doesn't compile with DMD 0.126: ----- void pr(char[] s) { printf("char[]\n"); } void pr(wchar[] s) { printf("wchar[]\n"); } int main() { pr("xyz"); return 0; } ----- The reason seems to be that the type of a string literal (char[], wchar[] or dchar[]) is determined by the type of the variable or function parameter it is assigned to. In the code above the compiler can't decide which pr() function should be called. This can be worked around by using a cast, e. g. pr(cast(char[])"xyz"); but I think this is very inconvenient. Therefore I would suggest to introduce the suffixes c, w and d to specify a char[], wchar[] or dchar[] array respectively. The line above could then be written as: pr("xyz"c); Interestingly, character literals have always type char, but it would be helpful to specify their type as well using the same suffixes. Michael
Jun 17 2005
On Fri, 17 Jun 2005 20:34:22 +0200, Michael Butscher wrote: [snip]Therefore I would suggest to introduce the suffixes c, w and d to specify a char[], wchar[] or dchar[] array respectively. The line above could then be written as: pr("xyz"c);How many times has this been proposed or asked for now? I've lost count. -- Derek Parnell Melbourne, Australia 18/06/2005 7:51:58 AM
Jun 17 2005
Derek Parnell wrote:How many times has this been proposed or asked for now? I've lost count.Too many. Maybe Walter should just go ahead and implement it, then the problem would go away. (Was that subtle? I was going for subtle...) Maybe it could be a prefix rather than a suffix, though. Just because A) the parser already checks for prefixes on string literals: 'r' for alt-syntax WYSIWYG strings, and 'x' for hex-strings; and B) the way the literal is read would likely be slightly different depending on whether it is UTF-8, 16, or 32. -- Chris Sauls
Jun 17 2005