Namensraum von sleep()?
-
Hallo,
in welchem Namensraum befindet sich der Befehl sleep?
Beispiel:
#include <unistd.h> int main (void) { sleep(5); return 0; }Funktioniert wunderbar.
Sobald ich jedoch den Namensraum für sleep mitgebe:
#include <unistd.h> int main (void) { std::sleep(5); return 0; }Findet er sleep nicht im Namensraum. "error: âusleepâ is not a member of âstdâ"
Wie kann ich sleep mit expliziter Namensraumangabe ansprechen?
Hintergrund: Ich möchte sleep in einem Programm aufrufen, in dem sleep in einem eigenen Namensraum redefiniert ist. Daher rufe ich ohne explizite Namensraumangabe immer das in dem Programm definierte sleep auf und nicht das, welches in unistd.h definiert.
-
Im globalen Namensraum:
::sleep(5).
-
sleep() ist ja auch nicht Teil des std:: namespace. Wenn du deine eigene Version von sleep im eigenen Namensraum "redefinieren" willst, schreibst du einfach
namespace custom { void sleep() { ... } int main() { custom::sleep(); }
-
Mittlerweile gibts ja
std::this_thread::sleep_for