Just to emphasise the point, who can see the error in the operator overloading example?
Serial << "GPS unit #" << gpsno << " reports lat/long of " << lat << "/" << long;
The IDE highlights keywords so the bug is easy to spot:
#include <Streaming.h>
int gpsno, lat;
void setup()
{
Serial.begin(9600);
Serial << "GPS unit #" << gpsno << " reports lat/long of " << lat << "/" << long;}
void loop()
{}
I would observe that this has been referenced several times in this thread, and presumably read, and no one has raised this concern. I think it suggests that it is not easy to understand.
As I mentioned in my earlier post, I do think that the C++ syntax looks a little scary to beginers. I am not clear what concern you feel has not been raised?
I hope this post doesn't come across as argumentative, I suspect we are in agreement that a simpler way to format output would be most welcome.