Was sind die Unterschiede in Kompilierbarkeit oder generierten Code (falls vorhanden) zwischen den beiden folgenden Quelldateien:"using Namensraum std;" vor "# include <foo>"
Exhibit A:
namespace std {};
using namespace std;
#include <vector>
#include <string>
<any code here>
Exhibit B:
#include <vector>
#include <string>
using namespace std;
<any code here>
Angenommen, die beiden <any code here>
Platzhalter werden durch identische ersetzt Benutzercode.
Anders ausgedrückt: Gibt es einen sichtbaren Unterschied zwischen Benutzern, wenn "namespace std;" wird vor den Standard #includes
gestellt (unter der Annahme, Namespace std wurde wie oben eingeführt)?
Ich bin neugierig, warum Sie das gefragt haben. – Pubby
Als erstes ist "Exhibit A" in C++ illegal: Sie dürfen den 'std'-Namespace nicht wieder öffnen. –
@ AndréCaron: Haben Sie eine Standardreferenz dafür? –