Calling std.variant.visit from a pure function

sarn via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Fri Nov 4 16:38:47 PDT 2016


On Friday, 4 November 2016 at 02:56:07 UTC, Paul Backus wrote:
> When I compile this (using DMD 2.069 on Debian Linux), I get an 
> error saying that I can't call visit from a pure function. This 
> is surprising, since all visit does (in theory) is call the 
> provided functions, and all of _them_ are pure.
>
> My question is, is this an unavoidable limitation of visit's 
> implementation, or is there a way to work around this?

I get the same error with 2.071.  (I haven't installed the new 
dmd yet.)

I suggest trying it with the latest dmd and filing a bug report.  
Taking a quick look at the library code 
(https://github.com/dlang/phobos/blob/master/std/variant.d), it 
*seems* like everything uses templates and functions returning 
auto, so the pureness of visit should be inferred if possible.


More information about the Digitalmars-d-learn mailing list