Pourquoi ce programme est-il à tort rejeté par trois compilateurs C++?

J'ai quelques difficultés à la compilation d'un programme C++ que j'ai écrit.

Ce programme est très simple et, au meilleur de ma connaissance, est conforme à toutes les règles énoncées dans la Norme C++. J'ai lu l'intégralité de la norme ISO/IEC 14882:2003 deux fois pour être sûr.

Le programme est comme suit:

Pourquoi ce programme est-il à tort rejeté par trois compilateurs C++?

Ici est le résultat que j'ai reçu lorsque vous essayez de compiler ce programme avec Visual C++ 2010:

c:\dev>cl /nologo helloworld.png
cl : Command line warning D9024 : unrecognized source file type 'helloworld.png', object file assumed
helloworld.png : fatal error LNK1107: invalid or corrupt file: cannot read at 0x5172

Consterné, j'ai essayé de g++ 4.5.2, mais il est tout aussi inutile:

c:\dev>g++ helloworld.png
helloworld.png: file not recognized: File format not recognized
collect2: ld returned 1 exit status

J'ai pensé que Clang (version 3.0 tronc 127530) doivent travailler, car c'est très apprécié pour sa conformité aux normes. Malheureusement, il n'a même pas me donner un de ses jolis, a mis en évidence des messages d'erreur:

c:\dev>clang++ helloworld.png
helloworld.png: file not recognized: File format not recognized
collect2: ld returned 1 exit status
clang++: error: linker (via gcc) command failed with exit code 1 (use -v to see invocation)

Pour être honnête, je ne sais pas vraiment ce que l'un de ces message d'erreur signifie.

De nombreux autres programmes C++ source des fichiers avec un .rpc extension, alors j'ai pensé que peut-être j'ai besoin de renommer mon fichier. J'ai changé son nom pour helloworld.cpp, mais cela n'a pas aidé. Je pense qu'il y a un très sérieux problème de Bruit parce que quand j'ai essayé de l'utiliser pour compiler le nouveau nom de programme, il a pété les plombs, imprimé "84 les avertissements et les 20 erreurs générées." et mon ordinateur bip beaucoup!

Qu'ai-je fait de mal? Ai-je oublié certaines critiques partie de la Norme C++? Ou sont tous les trois compilateurs vraiment juste tellement cassé qu'ils ne peuvent pas compiler ce programme simple?