On Mon, 21 Mar 2011 13:03:25 -0400, Magnus Lie Hetland <[email protected]> wrote:

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)).formatValue 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.)


If you looked and couldn't find it, it doesn't hurt to add it. Worst case -- it gets marked as a duplicate.

Note that typedef is eventually going to be deprecated. I'd suggest using alias unless you have a need to force uints not to be castable to oid_t.

-Steve

Reply via email to