GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
std::chrono::treat_as_floating_point(3) C++ Standard Libary std::chrono::treat_as_floating_point(3)

std::chrono::treat_as_floating_point - std::chrono::treat_as_floating_point


Defined in header <chrono>
template <class Rep> (since C++11)
struct treat_as_floating_point : std::is_floating_point<Rep> {};


The std::chrono::treat_as_floating_point trait helps determine if a duration can be
converted to another duration with a different tick period.


Implicit conversions between two durations normally depends on the tick period of
the durations. However, implicit conversions can happen regardless of tick period if
std::chrono::treat_as_floating_point<Rep>::value == true.


Helper variable template


template< class Rep >
inline constexpr bool treat_as_floating_point_v = (since C++17)
treat_as_floating_point<Rep>::value;


std::chrono::treat_as_floating_point may be specialized for program-defined types.

// Run this code


#include <iostream>
#include <chrono>
#include <thread>


void timed_piece_of_code()
{
std::chrono::milliseconds simulated_work(2);
std::this_thread::sleep_for(simulated_work);
}


int main()
{
auto start = std::chrono::high_resolution_clock::now();


std::cout << "Running some timed piece of code..." << '\n';
timed_piece_of_code();


auto stop = std::chrono::high_resolution_clock::now();


// A floating point milliseconds type
using FpMilliseconds =
std::chrono::duration<float, std::chrono::milliseconds::period>;


static_assert(std::chrono::treat_as_floating_point<FpMilliseconds::rep>::value,
"Rep required to be floating point");


// Note that implicit conversion is not allowed here
auto i_ms = std::chrono::duration_cast<std::chrono::milliseconds>(stop - start);


// Note that implicit conversion is allowed here
auto f_ms = FpMilliseconds(stop - start);


std::cout << "Timing stats: " << '\n';


std::cout << " Time in milliseconds, using default rep: "
<< i_ms.count() << '\n';


std::cout << " Time in milliseconds, using floating point rep: "
<< f_ms.count() << '\n';


}


Running some timed piece of code...
Timing stats:
Time in milliseconds, using default rep: 2
Time in milliseconds, using floating point rep: 2.57307

2022.07.31 http://cppreference.com

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.