ist es einfach, weil <math.h>
die Funktionen in namespace std
nicht deklariert. Es wurde nur aus Kompatibilitätsgründen in den C++ - Standard aufgenommen. Das korrekte C++ - Include wäre <cmath>
.
§D.5,2
Jeder C-Header, von denen jeder einen Namen der folgenden Form besitzt name.h
verhält sich, als ob jeder Name in der Standardbibliothek Namensraum durch die entsprechende cname
Header platziert innerhalb des globalen Namespace-Bereichs platziert. Es ist nicht angegeben, ob diese Namen zuerst im Namensraumbereich des Namensbereichs std
deklariert oder definiert werden und dann durch explizite using-declarations in den globalen Namensraumbereich injiziert werden.
Dass Ihr Code unter Windows funktioniert hat, war pures Glück - wenn Sie es so nennen wollen. Der letzte Satz gibt einen Hinweis, was unter Windows passieren könnte, aber nicht unter Linux: Unter Windows sind die Namen natürlich sowohl im globalen Namespace als auch im Namespace std
gültig.
Haben Sie '' eingeschlossen? –
juanchopanza
'#include', entsprechend http://en.cppreference.com/w/cpp/numeric/math/sqrt –
hmjd