struct cannot deduce function from argument types

chmike via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Tue May 3 07:31:48 PDT 2016


The following code does not compile and I don't understand why.

import std.stdio;

class Data
{
     string m = "Hello world !";
}

struct IdxElem(D)
{
     bool inUse;
     D data;
}
IdxElem!Data[string] idx;


void main()
{
     idx["test1"] = IdxElem(true, new Data);
     idx["test2"] = IdxElem(false, new Data);

     writeln(idx["test2"].data);
     writeln("Hello world!");
}

This is the error message I get with DMD64 D Compiler v2.068.2

source/app.d(20,27): Error: struct app.IdxElem cannot deduce 
function from argument types !()(bool, Data), candidates are:
source/app.d(9,1):        app.IdxElem(D)
source/app.d(21,27): Error: struct app.IdxElem cannot deduce 
function from argument types !()(bool, Data), candidates are:
source/app.d(9,1):        app.IdxElem(D)
dmd failed with exit code 1.

I get the same error even if I add a constructor to IdxElem that 
sets the member variables with its two arguments.



More information about the Digitalmars-d-learn mailing list