toString best practices
Bastiaan Veelo
Bastiaan at Veelo.net
Wed Feb 15 12:15:18 UTC 2023
On Thursday, 9 February 2023 at 17:49:58 UTC, Paolo Invernizzi
wrote:
> ```
> import std.format, std.range.primitives;
>
> struct Point(T)
> {
> T x, y;
>
> void toString(W)(ref W writer, scope const ref
> FormatSpec!char f) const
> if (isOutputRange!(W, char))
> {
> put(writer, "(");
> formatValue(writer, x, f);
> put(writer, ", ");
> formatValue(writer, y, f);
> put(writer, ")");
> }
> }
>
> void main(){
>
> import std.format : format;
> assert( format("%s", Point!int(1,2)) == "(1, 2)");
>
> import std.experimental.logger;
> sharedLog.infof("%s", Point!int(1,2));
> }
> ```
Pasting this into https://run.dlang.io/, it just works. That's
for DMD 2.099, so it might be a regression -- or recent feature?
-- Bastiaan.
More information about the Digitalmars-d-learn
mailing list