Thread overview |
---|
February 07, 2019 variant .init value | ||||
---|---|---|---|---|
| ||||
Hi, I'm trying to use Variant in a struct and want a default init value like so: --- struct S { Variant v = Variant(10); } void main() {auto s = S();} but when I try to build this I get the following error: dmd2/linux/bin64/../../src/phobos/std/variant.d(661): Error: memcpy cannot be interpreted at compile time, because it has no available source code Error: cannot interpret <error> at compile time --- I don't particularly need or want this to be available at compile time, I really only want the struct to have a default value when instantiated at runtime. Is there a way to do this with a Variant member? Thanks, Norm |
February 07, 2019 Re: variant .init value | ||||
---|---|---|---|---|
| ||||
Posted in reply to Norm | On Thursday, 7 February 2019 at 07:33:50 UTC, Norm wrote: > Hi, > > I'm trying to use Variant in a struct and want a default init value like so: > > --- > struct S { > Variant v = Variant(10); > } > void main() {auto s = S();} > > but when I try to build this I get the following error: > > dmd2/linux/bin64/../../src/phobos/std/variant.d(661): Error: memcpy cannot be interpreted at compile time, because it has no available source code > Error: cannot interpret <error> at compile time > --- > > I don't particularly need or want this to be available at compile time, I really only want the struct to have a default value when instantiated at runtime. > > Is there a way to do this with a Variant member? > > Thanks, > Norm Hmm... found something similar from 2014... https://issues.dlang.org/show_bug.cgi?id=11864 |
February 07, 2019 Re: variant .init value | ||||
---|---|---|---|---|
| ||||
Posted in reply to Alex | On Thursday, 7 February 2019 at 07:44:17 UTC, Alex wrote:
> On Thursday, 7 February 2019 at 07:33:50 UTC, Norm wrote:
>> [...]
>
> Hmm... found something similar from 2014...
> https://issues.dlang.org/show_bug.cgi?id=11864
Thanks, I've added a comment to that bug report.
Cheers,
Norm
|
February 07, 2019 Re: variant .init value | ||||
---|---|---|---|---|
| ||||
Posted in reply to Norm | On Thursday, 7 February 2019 at 07:33:50 UTC, Norm wrote:
> Hi,
>
> I'm trying to use Variant in a struct and want a default init value like so:
>
> ---
> struct S {
> Variant v = Variant(10);
> }
> void main() {auto s = S();}
>
> but when I try to build this I get the following error:
>
> dmd2/linux/bin64/../../src/phobos/std/variant.d(661): Error: memcpy cannot be interpreted at compile time, because it has no available source code
> Error: cannot interpret <error> at compile time
> ---
>
> I don't particularly need or want this to be available at compile time, I really only want the struct to have a default value when instantiated at runtime.
>
> Is there a way to do this with a Variant member?
>
> Thanks,
> Norm
I know this is not ideal, but here is a "workaround":
struct S {
Variant v;
static S opCall()
{
S s;
s.v = Variant(10);
return s;
}
}
Would have worked better if structs allowed default ctor in D, but they don't unfortunately.
|
Copyright © 1999-2021 by the D Language Foundation