Bug 17987 – Cannot use string in Variant at compile time
Status
RESOLVED
Resolution
DUPLICATE
Severity
enhancement
Priority
P1
Component
phobos
Product
D
Version
D2
Platform
All
OS
All
Creation time
2017-11-17T12:21:27Z
Last change time
2020-06-13T19:34:16Z
Assigned to
No Owner
Creator
Jonathan M Davis
Comments
Comment #0 by issues.dlang — 2017-11-17T12:21:27Z
This code
==========
import std.variant;
Variant v = "hello";
void main()
{
}
==========
results in this error:
/usr/local/include/dmd/std/variant.d(624): Error: memcpy cannot be interpreted at compile time, because it has no available source code
/usr/local/include/dmd/std/variant.d(559): called from here: this.opAssign(value)
q.d(3): called from here: VariantN(& handler, cast(ubyte)0u, ).this("hello")
I would _think_ that it could be made to work without memcpy, but I don't know. Regardless, the use of memcpy restricts the ability to use Variant at compile time. So ideally, Variant would be fixed so that the example here worked.
Comment #1 by snarwin+bugzilla — 2020-06-13T19:34:16Z
*** This issue has been marked as a duplicate of issue 11864 ***