"function not callable using argument types" - i disagree

Vlad Levenfeld via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Tue Oct 7 12:04:02 PDT 2014


I'm trying to use the portaudio bindings and can't seem to call 
Pa_OpenStream, I get this error:

------------
source/pa_test.d(156): Error: function 
deimos.portaudio.Pa_OpenStream (void** stream, 
const(PaStreamParameters*) inputParameters, 
const(PaStreamParameters*) outputParameters, double sampleRate, 
uint framesPerBuffer, uint streamFlags, extern (C) int 
function(const(void)* input, void* output, uint frameCount, 
const(PaStreamCallbackTimeInfo)* timeInfo, uint statusFlags, 
void* userData) streamCallback, void* userData) is not callable 
using argument types (void**, PaStreamParameters*, 
PaStreamParameters*, double, uint, uint, extern (C) int 
function(const(void)* inputBuffer, void* outputBuffer, uint 
framesPerBuffer, const(PaStreamCallbackTimeInfo)* timeInfo, uint 
statusFlags, void* userData), void*)
------------

for clarity, here are the argument lists separated: what I need 
is up top, what I have is on the bottom:

(void**, const(PaStreamParameters*), const(PaStreamParameters*), 
double, uint, uint, extern (C) int function(const(void)*, void*, 
uint, const(PaStreamCallbackTimeInfo)*, uint, void*), void*)

(void**, PaStreamParameters*, PaStreamParameters*, double, uint, 
uint, extern (C) int function(const(void)*, void*, uint, 
const(PaStreamCallbackTimeInfo)*, uint, void*), void*)

--------------

The only difference I see is in const(PaStreamParameters*) but I 
feel like every time I pass a non-const argument where a const is 
required, the conversion should be implicit. At least, that's the 
way I seem to recall it working.

What am I doing wrong?


More information about the Digitalmars-d-learn mailing list