chrono::duration_cast
Çevrimde kayıp olmasın yani gerekirse küsuratlı olsun istersek float kullanarak şöyle yaparız.
duration_cast farklı duration tipleri arasında dönüşüm yapmak için kullanılır.
Örnek
Şöyle yaparız
ÖrnekÖrnek
Şöyle yaparız
typedef std::chrono::high_resolution_clock my_clock;
my_clock::time_point start = my_clock::now();
// Do stuff
my_clock::time_point end = my_clock::now();
std::chrono::milliseconds ms_duration =
std::chrono::duration_cast<std::chrono::milliseconds>(end - start);
Çevrimde kayıp olmasın yani gerekirse küsuratlı olsun istersek float kullanarak şöyle yaparız.
std::chrono::high_resolution_clock::duration d = ...;
if (d < std::chrono::microseconds(10))
cout
<< std::chrono::duration_castt<std::chrono::duration<float, std::nano>>(d).count()
<< " nnano s";
Örnek
std::duration_cast kodları uzun olduğu için şöyle yaparız.
std::duration_cast kodları uzun olduğu için şöyle yaparız.
template <typename Duration>
auto as_ms(Duration const& duration) {
return std::chrono::duration_cast<std::chrono::milliseconds>(duration).count();
}
void foo() {
Time start = Clock::now();
// something
Time end = Clock::now();
std::cout << as_ms(end - start).count() << std::endl;
}
C++17 ile şöyle yaparız.using Clock = std::chrono::system_clock;
using Time = Clock::time_point;
auto Ms = [](auto&& duration)
{
return std::chrono::duration_cast<std::chrono::milliseconds>(duration).count();
};
auto start = Clock::now();
// something
auto end = Clock::now();
std::cout << Ms(end - start) << std::endl;
Hiç yorum yok:
Yorum Gönder