Immutable cannot be casted to const when using pointers
John Colvin
john.loughran.colvin at gmail.com
Tue Apr 8 14:07:28 PDT 2014
On Tuesday, 8 April 2014 at 21:05:10 UTC, Jeroen Bollen wrote:
> For some reason this code doesn't work...
>
> module app;
>
> void main() {
> immutable char var = 'a';
> immutable(char)* varPtr = &var;
> test(&varPtr);
> }
>
> void test(immutable(char)** param) {
> test2(param);
> }
>
> void test2(const(char)** test2) {
>
> }
>
> It'll give you " Error: function app.test2 (const(char)**
> test2) is not callable using argument types
> (immutable(char)**)", which makes no sense as if a function
> requests a constant variable, immutable should suffice.
>
> What's even weirder (although it is what should happen), if you
> remove one of the pointers, it compiles fine.
>
> module app;
>
> void main() {
> immutable char var = 'a';
> test(&var);
> }
>
> void test(immutable(char)* param) {
> test2(param);
> }
>
> void test2(const(char)* test2) {
>
> }
>
> Is this a bug? I'm using DMD.
Looks like a bug to me.
More information about the Digitalmars-d
mailing list