Tuple [] operator

Dmitry Olshansky dmitry.olsh at gmail.com
Mon Aug 8 12:37:34 PDT 2011


On 08.08.2011 23:27, Christian Manning wrote:
> Hi,
> I'm receiving this error with dmd 2.054:
> "tmp.d(7): Error: no [] operator overload for type Tuple!(int,short)" for
> the following test case
>
> import std.typecons;
> void main() {
> auto x = 1;
> Tuple!(int,short) a;
> a[0] = 1;
> a[x] = 2;
> }
>
> If I use a value instead of a variable ie. a[1] = 2; it compiles fine.
>
> A search turned up http://d.puremagic.com/issues/show_bug.cgi?id=6273 and
> http://d.puremagic.com/issues/show_bug.cgi?id=6342 though they specifically
> mention the use of pure functions which I'm not using. Is this the same
> problem anyway?
>
Your case seems simple, it means you can't index tuple with variable as 
index, only with something known at compile time.
Replace auto with enum and you are fine, you can even call a function 
using CTFE to get an index.

-- 
Dmitry Olshansky



More information about the Digitalmars-d-learn mailing list