No. the compiler takes all of the stuff that is pre-defined like %f and provides a vector directly to the conversion routine. If the string is _T or WCHAR then it gets even messier and uses another routine.

If you play around like this: "%5.2f", then the code doesn't go directly to conversion at runtime. You can look at the asm c++ generates and see this. Change the compile options to produce an asm list.

Any numeric -> string conversion involves a fair amount of overhead. Formatting in general is very expensive. You can look at this as just formatting with type conversion.