On Sunday, 27 December 2015 at 05:29:44 UTC, riki wrote:
On Sunday, 27 December 2015 at 04:54:07 UTC, Basile B. wrote:
On Sunday, 27 December 2015 at 03:34:18 UTC, riki wrote:
void ccf(const char* str){}
void cwf(const wchar* str){}
void main()
{
ccf("aaa"); //ok
cwf("xxx"w); // error and why ?
}
IDK but usually the const storage class is used for narrow
strings because it allows to pass either `char[]` or
`string[]`:
```
void ccf(const char[] str){}
void cwf(const wchar[] str){}
void main()
{
ccf("aaa");
cwf("xxx"w);
ccf("aaa".dup);
cwf("xxx"w.dup);
}
```
I'm actually surprised that one works, maybe both should fail.
windows api is use const(wchar)*, not const wchar[]
To be clear:
My remark was about how it's used in phobos.
In fact your usage is wrong since you should pass either:
"sfsdf".ptr"
"sdfsf"w.ptr
That's also why i said that I was surpsied that the first call
didn't generate a compilation error. Anyway, it looks like there
is an implicit convertion in this case...