Problems using rawWrite in an experiment with WAVs in D
Paul Backus
snarwin at gmail.com
Wed Dec 27 21:22:38 UTC 2023
On Wednesday, 27 December 2023 at 20:20:23 UTC, tososdk wrote:
> I was recreating some code from C++ to D:
[...]
> But since I am somewhat new to these topics and even more so to
> Dlang, I don't understand very well. The problem occurs in the
> creation of the .wav, regarding rawWrite, I'm not really sure
> what to do in that specific part. Maybe I'm ignorant, but I'm
> not very good at these topics, plus it's for experimentation.
Here's the error message I got when I tried to compile your code:
```
Error: template `std.stdio.File.rawWrite` is not callable using
argument types `!()(WavHeader)`
/dlang/dmd/linux/bin64/../../src/phobos/std/stdio.d(1273):
Candidate is: `rawWrite(T)(in T[] buffer)`
```
What this message is saying is that you tried to pass a
`WavHeader` to `rawWrite`, but `rawWrite` expects a slice (`T[]`,
where `T` can be any type) as an argument.
The easiest way to fix this is to use [pointer slicing][1] to
create a temporary slice that points to `wavh`:
```d
file.rawWrite((&wahv)[0 .. 1]);
```
[1]: https://dlang.org/spec/expression.html#slice_expressions
More information about the Digitalmars-d-learn
mailing list