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.
*** This issue has been marked as a duplicate of issue 11864 ***