On 06/20/2016 04:47 PM, Shachar Shemesh wrote:
> Please consider the following program:
> 
> struct V(T) {
>     int opApply(scope int delegate(ref T value) dg) {
>         return 0;
>     }
>     int opApply(scope int delegate(ref const T value) dg) const {
>         return 0;
>     }
> }
> 
> struct V1(T) {
>     int opApply(scope int delegate(ref inout T value) dg) inout {
>         return 0;
>     }
> }
> 
> void main() {
>     const V!int mytype1;
>     V!int mytype2;
>     V1!int mytype3;
> 
>     foreach( v; mytype1 ) {
>     }
>     foreach( v; mytype2 ) {
>     }
>     foreach( v; mytype3 ) { // <- This line doesn't compile: cannot
> uniquely infer foreach argument types
>     }
> }
> 
> So the only way to get inout to work is... not to use it?
> 
> Shachar

I think Steven has mentioned this issue during his DConf inout talk.

Reply via email to