Thread overview | |||||
---|---|---|---|---|---|
|
March 13, 2021 Cannot pass const(T) to function with ref const(T) | ||||
---|---|---|---|---|
| ||||
Hello,
Dmd gives an error:
> Error: function `_setPastBases(ref const(Data) item, ref const(Word!(wstring, wstring)) base)` is not callable using argument types `(const(Data), Word!(wstring, wstring))
where Data and Word - structs.
What happens and how to pass arguments?
Ldc compiles without such error.
|
March 13, 2021 Re: Cannot pass const(T) to function with ref const(T) | ||||
---|---|---|---|---|
| ||||
Posted in reply to Andrey | Mistake. It says about simple argument: > cannot pass rvalue argument `xxxxx` of type `Word!(wstring, wstring)` to parameter `ref const(Word!(wstring, wstring)) base` Function: > void _setPastBases(const ref Data item, const ref UsualWord base) |
March 13, 2021 Re: Cannot pass const(T) to function with ref const(T) | ||||
---|---|---|---|---|
| ||||
Posted in reply to Andrey | On 3/13/21 5:24 PM, Andrey wrote:
> Mistake. It says about simple argument:
>> cannot pass rvalue argument `xxxxx` of type `Word!(wstring, wstring)` to parameter `ref const(Word!(wstring, wstring)) base`
>
> Function:
>> void _setPastBases(const ref Data item, const ref UsualWord base)
Yeah, D does not allow (without a switch) passing an rvalue (i.e. a temporary) into a reference.
There is a preview switch for it, I think -preview=rvaluerefparam
-Steve
|
Copyright © 1999-2021 by the D Language Foundation