Postfix string literal alternative suggestion

Walter Bright newshound1 at digitalmars.com
Sat Feb 9 12:17:28 PST 2008


Edward Diener wrote:
> The string literal in D can have a postfix character of 'c', 'w', or 'd' 
> for specifying the type of the literal. This notation is in the same 
> spirit as the C++ prefix of L"..." to specify a wide character string. 
> Such syntax does not play well with templates based on a character type.
> 
> I would like to suggest instead the use of a cast(type) expression for 
> string literals, perhaps something like 'string_cast(type)"some string 
> literal"' where the type would have to be char, wchar, or dchar. This 
> says to treat the literal as a particular type and would be a 
> replacement for "some string literal"c|w|d notation. The reason I think 
> my suggestion is superior is that one may have a template class or 
> function in which one of the template parameters is a character type and 
> then one can easily specify the template type using the notation 
> suggested by me to coerce a string literal to the preferred type without 
> having to know the type of the template parameter.
> 

You can already use the syntax:

	cast(string)"foo";
	cast(wstring)"bar";
	cast(dstring)"abc";

if you need to.



More information about the Digitalmars-d mailing list