std::chrono:: treat_as_floating_point
              
  | 
             
              
  | 
             
              
  | 
            ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member functions | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Non-member functions | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
              
  | 
            ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Helper classes | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
              
  | 
             
              
  | 
            |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 
           
           Défini dans l'en-tête
            
         
            
             <chrono>
            
           
           | 
         ||
| 
           
           
            
             template
            
            
             <
            
            
             class
            
            Rep
            
             >
            
             
         struct treat_as_floating_point : std:: is_floating_point < Rep > { } ;  | 
         (depuis C++11) | |
       Le trait
       
        std::chrono::treat_as_floating_point
       
       aide à déterminer si une durée peut être convertie en une autre durée avec une période de tick différente.
      
Les conversions implicites entre deux durées dépendent normalement de la période de tic des durées. Cependant, les conversions implicites peuvent se produire indépendamment de la période de tic si std :: chrono :: treat_as_floating_point < Rep > :: value est true .
         Table des matières | 
       
Modèle de variable d'assistance
| 
           
           
            
             template
            
            
             <
            
            
             class
            
            Rep
            
             >
            
             
         constexpr bool treat_as_floating_point_v = treat_as_floating_point < Rep > :: value ;  | 
         (depuis C++17) | |
Spécialisations
       
        std::chrono::treat_as_floating_point
       
       peut être spécialisé pour des types définis par le programme.
      
Exemple
#include <chrono> #include <iostream> #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'; }
Sortie possible :
Running some timed piece of code... Timing stats: Time in milliseconds, using default rep: 2 Time in milliseconds, using floating point rep: 2.57307