2016-11-08 7 views
0

Ich schreibe ein Programm in C++, und an einem Teil möchte ich das Programm für 1 Sekunde schlafen. Ich verwende den folgenden Ausdruck Plattform unabhängig zu sein:Der beste Weg zum Alias ​​Ausdruck

std::this_thread::sleep_for(std::chrono::duration<int, std::milli>(1000)); 

Diese Linie Weg zu lang ist, so möchte ich für sie einen Alias ​​verwenden. Was ist die beste Methode, um dies zu erreichen?

+0

Es gibt bereits einige [Helfertypen] (http://en.cppreference.com/w/cpp/chrono/duration#Helper_types) für Zeitdauern. Sie können natürlich auch eine Funktion mit einem kürzeren Namen erstellen, die einen Wert in Millisekunden annimmt und 'sleep_for' aufruft. –

+6

Wrap es in einer Funktion? 'void sleep() {std :: this_thread :: sleep_for (std :: chrono :: duration (1000));}' Sie können einen Parameter mit dem Standardargument hinzufügen, wenn Sie das angeben möchten manchmal Zeit. –

+1

Sie können auch benutzerdefinierte Literale verwenden. – DeiDei

Antwort

4

Wenn Sie mit> = C++ 14 sind wörtliche chrono Helfer. Es ist möglich, zu schreiben:

using namespace std::chrono_literals; 
std::this_thread::sleep_for(1s); 
std::this_thread::sleep_for(1min); 
0

Wie andere vorgeschlagen haben, können Sie eine Funktion für diese Aktion schreiben, wenn Sie einen "Alias" für diese Aktion wünschen. using und std::chrono ‚s Helfer können einen langen Weg gehen, aber:

using std::chrono::seconds; 
using std::this_thread::sleep_for; 
⋮ 
sleep_for(seconds(1)); 
Verwandte Themen