On Mon, Mar 19, 2018 at 04:33:28PM +0000, Russel Winder via Digitalmars-d-learn 
wrote:
[...]
> I have been staring at this message so long, I have clearly stopped
> actually reading it, hence outside assistance needed.
> 
> Can someone please explain to me (probably in words of one syllable
> since I am clearly being very unintelligent) how any code can deliver
> an error message such as:
[...]

Here's my reformatting of the error, that hopefully might be of
assistance:

> source/channels.d(161): Error: constructor
> libdvbv5.ScanHandler_Ptr.this (
>       dvb_v5_fe_parms* frontendParameters,
>       dvb_entry* entry,
>       const(int) dmx_fd,
>       extern (C) int function(void* args, dvb_v5_fe_parms* parms) 
> check_frontend,
>       const(uint) other_nit,
>       const(uint) timeout_multiplier)
> is not callable using argument types (
>       dvb_v5_fe_parms*,
>       dvb_entry*,
>       const(int),
>       extern (C) int function(void* _arguments, dvb_v5_fe_parms* 
> frontendParameters),
>       const(uint),
>       const(uint))
[...]

Or, boiled down to the bare basics with extraneous identifiers removed:

> source/channels.d(161): Error: constructor
> libdvbv5.ScanHandler_Ptr.this (
>       dvb_v5_fe_parms*,
>       dvb_entry*,
>       const(int),
>       extern (C) int function(void*, dvb_v5_fe_parms*),
>       const(uint),
>       const(uint))
> is not callable using argument types (
>       dvb_v5_fe_parms*,
>       dvb_entry*,
>       const(int),
>       extern (C) int function(void*, dvb_v5_fe_parms*),
>       const(uint),
>       const(uint))
[...]

Which is rather odd, since the parameter types correspond to each other
exactly.  So why the compiler would reject the code, I honestly have no
idea.

One wild guess is if some of the symbols come from different modules,
such that you might have modA.dvb_entry vs. modB.dvb_entry, for example,
which would be a type mismatch. Or if one symbol was declared in D
linkage but the other in C linkage, which is perhaps a more likely
cause. But since the compiler doesn't tell us the FQN of the
identifiers, it's anybody's guess whether this is actually the problem,
or which are the offending identifiers.


T

-- 
Prosperity breeds contempt, and poverty breeds consent. -- Suck.com

Reply via email to