digitalmars.D - std.format %p and TypeInfo_P
- derick_eddington nospam.yasmhoo.com Apr 02 2005
- =?ISO-8859-1?Q?Anders_F_Bj=F6rklund?= <afb algonet.se> Apr 02 2005
- pragma <pragma_member pathlink.com> Apr 03 2005
derick_eddington nospam.yasmhoo.com writes:
I'm getting tired of typing %#010x and casting so I can format pointers and having this FormatSpecification not be portable to 64-bit pointers. I looked at std.format.doFormat and it seems most of what's needed for a 'p' FormatChar is there (everything except for switching for 'p' at the Lnumber: label, it seems) ('p' is even already checked for on line 472 of format.d but not used otherwise). But the TypeInfo of pointer types isn't using TypeInfo_P, just the base TypeInfo, and doFormat needs the TypeInfo's classinfo.name.length >= 10 so it can deduce the type from the 10th char, otherwise it fails; so it seems TypeInfo_P for pointer types is also needed before formatting them can work. Does anyone else feel the need for std.format to do pointers?
Apr 02 2005
=?ISO-8859-1?Q?Anders_F_Bj=F6rklund?= <afb algonet.se> writes:
derick_eddington wrote:Does anyone else feel the need for std.format to do pointers?
I do, since it's absolutely necessary for std.unformat to work! It's not so much that std.format needs to support pointers, but that D's TypeInfo for pointers (in general) need to be fixed... --anders
Apr 02 2005
pragma <pragma_member pathlink.com> writes:
In article <d2o4u8$1vc4$1 digitaldaemon.com>, derick_eddington nospam.yasmhoo.com says...Does anyone else feel the need for std.format to do pointers?
Oh god yes. I'm sick of typing "%0.8X" for every address I want to look at. It would be nice if I could do something like this instead:int foo; format("%p",&foo);
- EricAnderton at yahoo
Apr 03 2005