c++11 - Is there any C++ standard class/function which is similar to GetTickCount() on Windows? -
अहस्ताक्षरित int टिक = GetTickCount (); यह कोड केवल विंडोज पर चल रहा है, लेकिन मैं सी ++ मानक पुस्तकालय का उपयोग करना चाहता हूं ताकि वह कहीं और चला सके।
मैंने std :: chrono , लेकिन मुझे GetTickCount () । जैसे फ़ंक्शन नहीं मिल रहा है क्या आपको पता है कि मुझे std :: chrono
आप विंडोज के शीर्ष पर कस्टम chrono घड़ी बना सकते हैं GetTickCount () । फिर उस घड़ी का उपयोग करें पोर्टिंग में, आपको बस पोर्ट करना पड़ता है उदाहरण के लिए, मैं विंडोज पर नहीं हूं, लेकिन ऐसा एक ऐसा बंदरगाह ऐसा दिख सकता है: #include & lt; chrono & gt; // विंडोज के सिमुलेशन GetTickCount () अहस्ताक्षरित लंबे समय तक GetTickCount () {नामस्थान std :: chrono; वापसी की अवधि_कास्ट & lt; मिलीसेकंड्स & gt; (स्थिर_क्लॉक :: अब ()। Time_since_epoch ())। गणना (); } // घड़ी पर निर्मित विंडोज़ GetTickCount () संरचना टिकिकॉटलक्लॉक {टाइप किए गए साइबंस किए गए लंबे लंबे प्रतिनिधि; Typedef std :: मिली अवधि; Typedef std :: chrono :: अवधि & lt; rep, अवधि & gt; अवधि; Typedef std :: chrono :: time_point & lt; टिककाउंटक्लॉक & gt; समय बिंदु; स्थिर const bool is_steady = true; स्थैतिक टाइम_पॉइंट अब () बिना सीखे {वापसी time_point (अवधि (GetTickCount ())); }}; // टेस्ट टिकिकटाइक्लॉक # शामिल करें & lt; थ्रेड & gt; # शामिल करें & lt; iostream & gt; Int main () {auto t0 = टिककटाउनक्लॉक :: अब (); Std :: this_thread :: sleep_until (t0 + std :: chrono :: सेकंड (1)); ऑटो t1 = टिककाउंटक्लॉक :: अब (); Std :: cout & lt; & lt; (टी 1-टी 0) .काउंट () & lt; & lt; "एमएस \ n"; } मेरे सिस्टम पर, स्थिर_क्लॉक बूट के बाद से नैनोसेकंड वापस करना होता है। आप अन्य प्लेटफार्मों पर GetTickCount () एमुलेट करने के अन्य गैर-पोर्टेबल तरीके पा सकते हैं। लेकिन एक बार यह विवरण पूरा हो गया है, आपका घड़ी ठोस है, और घड़ी के क्लाइंट को इसके बारे में कोई समझदार होने की आवश्यकता नहीं है। मेरे लिए यह परीक्षण विश्वसनीय रूप से आउटपुट करता है:
1000ms
Comments
Post a Comment