Bug w/tuple of custom types?
Jonathan M Davis
jmdavisProg at gmx.com
Mon Mar 21 10:48:05 PDT 2011
> Sample program:
>
> import std.typecons;
>
> typedef uint oid_t;
>
> void main() {
> Tuple!(uint,uint) key;
> // Tuple!(oid_t,oid_t) key; // Doesn't work
> }
>
> If I use the last tuple instead of the first, I get the following
> compiler error with DMD 2.052 in OS X:
>
> /path/to/src/phobos/std/format.d(1579): Error: function
> std.format.formatValue!(Appender!(string),oid_t,immutable(char)).formatValu
> e is deprecated
> /path/to/src/phobos/std/format.d(306): Error: template instance
> std.format.formatGeneric!(Appender!(string),oid_t,immutable(char))
> error instantiating
> /path/to/src/phobos/std/typecons.d(507): instantiated from here:
> formattedWrite!(Appender!(string),immutable(char),oid_t)
>
> It seems that std.typecons is using a deprecated formatting API, which
> is triggered by my use of a custom type? And ... I guess this would be
> a bug? (I looked in the tracker, and couldn't find it there already.)
I would point out that typedef is going to be removed from the language. You
should be using alias instead. I don't know if this wil lhave any effect on
the bug you're seeing though (probably, since alias doesn't actually produce a
new type - just an alias for the old one).
- Jonathan M Davis
More information about the Digitalmars-d-learn
mailing list