2016-11-08 8 views
0

私はC++でプログラムを書いていますが、1つはプログラムを1秒間スリープ状態にします。私はプラットフォームに依存しないために次の式を使用しています:エイリアス式に最も適した方法

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

この行は長すぎますので、別名を使用したいと思います。これを達成する最良の方法は何ですか?

+0

は、すでにいくつかの[ヘルパータイプ]があります(http://en.cppreference.com/w/cpp/chrono/duration#Helper_types)持続時間のために:書くことが可能です。もちろん、より短い名前の関数を作成して、ミリ秒単位で値を取得し、 'sleep_for'を呼び出すこともできます。 –

+6

関数にラップしますか? 'void sleep(){std :: this_thread :: sleep_for(std :: chrono :: duration (1000));}'デフォルトの引数でパラメータを追加すると、時々。 –

+1

ユーザ定義リテラルも利用できます。 – DeiDei

答えて

4

リテラルクロノヘルパーがある> = C++ 14を使用している場合。

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

他の人も示唆しているように、そのアクションの「エイリアス」が必要な場合は、そのアクションを作成できます。 usingstd::chronoのヘルパーとはいえ、長い道のりを行くことができます:

using std::chrono::seconds; 
using std::this_thread::sleep_for; 
⋮ 
sleep_for(seconds(1)); 
関連する問題