Contracts should work on function prototypes.
Consider a C function like this one from liquid-dsp
/* Create object using Kaiser-Bessel windowed sinc method */ \
/* _n : filter length, _n > 0 */ \
/* _fc : filter normalized cut-off frequency, 0 < _fc < 0.5 */ \
/* _As : filter stop-band attenuation [dB], _As > 0 */ \
/* _mu : fractional sample offset, -0.5 < _mu < 0.5 */ \
void _create_kaiser(unsigned int _n, \
float _fc, \
float _As, \
float _mu); \
it would be great if we could add contracts directly to our D decleration:
_create_kaiser(uint n, float fc, float As, float mu) in(n > 0) in(0 < fc && fc < 0.5) in(As > 0) in(-0.5 < mu && mu < 0.5);
Comment #1 by robert.schadek — 2024-12-13T19:00:03Z