std:: common_type <std::chrono::duration>
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member functions | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Non-member functions | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Helper classes | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Definiert im Header
<chrono>
|
||
|
template
<
class
Rep1,
class
Period1,
class
Rep2,
class
Period2
>
struct
common_type
<
std::
chrono
::
duration
<
Rep1, Period1
>
,
|
(seit C++11) | |
Macht den Typnamen
type
verfügbar, welcher der gemeinsame Typ zweier
std::chrono::duration
ist, deren Periode der größte gemeinsame Teiler von
Period1
und
Period2
ist.
Inhaltsverzeichnis |
Mitgliedertypen
| Mitgliedstyp | Definition |
type
|
std:: chrono :: duration < typename std:: common_type < Rep1, Rep2 > :: type , /* siehe Hinweis */ > |
Hinweis
Die Periode der resultierenden Dauer kann berechnet werden, indem ein Verhältnis aus dem größten gemeinsamen Teiler von Period1 :: num und Period2 :: num sowie dem kleinsten gemeinsamen Vielfachen von Period1 :: den und Period2 :: den gebildet wird.
Beispiel
#include <chrono> #include <iostream> #include <type_traits> // std::chrono already finds the greatest common divisor, // likely using std::common_type<>. We make the type // deduction externally. template<typename T,typename S> constexpr auto durationDiff(const T& t, const S& s) -> typename std::common_type<T,S>::type { typedef typename std::common_type<T,S>::type Common; return Common(t) - Common(s); } int main() { using namespace std::literals; constexpr auto ms = 30ms; constexpr auto us = 1100us; constexpr auto diff = durationDiff(ms, us); std::cout << ms << " - " << us << " = " << diff << '\n'; }
Ausgabe:
30ms - 1100us = 28900us
Siehe auch
|
spezialisiert das
std::common_type
Merkmal
(Klassen-Template-Spezialisierung) |
|
|
(C++11)
|
bestimmt den gemeinsamen Typ einer Gruppe von Typen
(Klassen-Template) |