C ++ 20'de zaman: Temel Terminoloji Krono zaman ve zamanla
Zaman dilimi fonksiyonu (C ++ 20), esasen takvimin (C ++ 20) işlevselliğine dayanır, bu da chono fonksiyonuna (C ++ 11) dayanır. Son yazıdaki Chrono Temel Terminolojisine genel bir bakıştan sonra, C ++ 20'de yeni veri türleri sunuyorum.
Süre
C ++ 14'te, gibi veri türleri std::chrono::seconds Zaman ve karşılık gelen zaman değişkenleri için 5s tanıtıldı. C ++ 20 Yeni veri türleri eklendi. Aşağıdaki tablo bütünlük için her şeyi göstermektedir.
Genellikle zamanın süresi std::chrono::days Ve takvimin tarihi std::chrono::day kafası karışmış. Aynı şey zaman süresi için de geçerli std::chrono::years Ve takvimin tarihi std::chrono::year.
Rainer Grimm yıllardır yazılım mimarı, ekip ve eğitim müdürü olarak çalıştı. C ++ programlama dilleri, Python ve Haskell hakkında makaleler yazmayı seviyor, ancak uzman konferanslarla konuşmayı da seviyor. Modern C ++ blogunda, C ++ tutkusuyla yoğun bir şekilde ilgileniyor.
Zaman süresi arasındaki farklılıklar std::chrono::days,, std::chrono::years ve takvim türleri std::chrono::day, std::chrono::year
C ++ 20'de, yeni takvim türleri için iki yeni litre std::chrono::day VE std::chrono::yeaR eklendi. Gerçek d VE y Biriyle ilgili std::chrono::day VE std::chrono::year.
// dayDays.cpp
#include <iostream>
#include <chrono>
int main() {
std::cout << 'n';
using namespace std::chrono_literals;
std::chrono::days days1
= std::chrono::day(30) - std::chrono::day(25); // (1)
std::chrono::days days2 = 30d - 25d; // (3)
if ( days1 == days2 &&
days1 == std::chrono::days(5)) std::cout << "Five daysn";
std::chrono::years years1
= std::chrono::year(2021) - std::chrono::year(1998); // (2)
std::chrono::years years2= 2021y - 1998y; // (4)
if ( years1 == years2 &&
years1 == std::chrono::years(23))
std::cout << "Twenty-three yearsn";
std::cout << 'n';
}
Türün iki nesnesi std::chrono::day Çıkarılmış (1), türden bir nesne alır std::chrono::days. Aynı şey bunun için de geçerlidir std::chrono::year (2) e std::chrono::years. Sayesinde using-Alan Alanı ile İzin std::chrono_literals Kelimenin tam anlamıyla zamanlayabilirim std::chrono::day VE std::chrono::year Doğrudan belirtin (3 ve 4).
Firma kurmak
Değişiklikleri sonuçlandırmanın çeşitli yolları vardır.
// literals.cpp
#include <chrono>
#include <string>
int main() {
{
using namespace std::literals;
std::string cppString = "C++ string literal"s; // (1)
auto aMinute = 60s; // (2)
// duration aHour = 0.25h + 15min + 1800s;
}
{
using namespace std::chrono;
// std::string cppString = "C++ string literal"s;
auto aMinute = 60s;
duration aHour = 0.25h + 15min + 1800s; // (3)
}
{
using namespace std::chrono_literals;
// std::string cppString = "C++ String literal"s;
auto aMinute = 60s;
// duration aHour = 0.25h + 15min + 1800s;
}
}
İsimlerin odasındaki bildirimler std::literals Literal String gibi tüm dahil edilen değişmezleri etkinleştirin ("C++ String-Literal "s 1) veya gerçek zaman (60s 2. satırda). std::chrono::duration Kalifiksiz kullanılamaz. Aksine, bildirim kullanıyor using namespace std::chrono gerçek zaman ve veri türüne izin verir std::chrono::duration (3) Çıkarılmaz: duration aHour = 0.25h + 15min + 1800s. Sayesinde using-Bilat using namespace::std::chrono::literals Tüm kelimeler mevcuttur.
zaman
Saat ve zaman süresine ek olarak, üçüncü temel tip C ++ 11'deydi std::chrono::time_point.
template<typename Clock,
typename Duration = typename Clock::duration>
class time_point;
A std::chrono::time_point Saate ve zamanın süresine bağlıdır. C ++ 20 ek zamanlar için aka sunar.
Ecxeption ile std::chrono::steady_clock Belirtilen süre boyunca bir zaman tanımlamak mümkündür. Saat dışındaki herkesle std::chrono::file_clock Bunları birkaç saniye belirtebilirsiniz. İle std::chrono::local_t VE std::chrono::system_clock Onları günlerce de ayarlayabilirsiniz.
Sırada ne var?
std::chrono::hh_mm_ss Hava, gece yarısı saniyelik saatler, dakikalar, saniye ve kesirlere ayrıldı. C ++ 20'deki bu yeni veri türü günün saati içindir.
(RME)
C ++ 20'de zaman: Temel Terminoloji Krono zaman ve zamanla
Zaman dilimi fonksiyonu (C ++ 20), esasen takvimin (C ++ 20) işlevselliğine dayanır, bu da chono fonksiyonuna (C ++ 11) dayanır. Son yazıdaki Chrono Temel Terminolojisine genel bir bakıştan sonra, C ++ 20'de yeni veri türleri sunuyorum.

Süre
C ++ 14'te, gibi veri türleri std::chrono::seconds Zaman ve karşılık gelen zaman değişkenleri için 5s tanıtıldı. C ++ 20 Yeni veri türleri eklendi. Aşağıdaki tablo bütünlük için her şeyi göstermektedir.

Genellikle zamanın süresi std::chrono::days Ve takvimin tarihi std::chrono::day kafası karışmış. Aynı şey zaman süresi için de geçerli std::chrono::years Ve takvimin tarihi std::chrono::year.

Rainer Grimm yıllardır yazılım mimarı, ekip ve eğitim müdürü olarak çalıştı. C ++ programlama dilleri, Python ve Haskell hakkında makaleler yazmayı seviyor, ancak uzman konferanslarla konuşmayı da seviyor. Modern C ++ blogunda, C ++ tutkusuyla yoğun bir şekilde ilgileniyor.
Zaman süresi arasındaki farklılıklar std::chrono::days,, std::chrono::years ve takvim türleri std::chrono::day, std::chrono::year
C ++ 20'de, yeni takvim türleri için iki yeni litre std::chrono::day VE std::chrono::yeaR eklendi. Gerçek d VE y Biriyle ilgili std::chrono::day VE std::chrono::year.

- Günlük değişken, ayın bir günü içindir ve bölgenin dışında bulunursa belirtilmez [0, 255] yalan.
- Yıllık değişmez, bir yıl boyunca Gregoryen takviminde ve bölgenin dışında bulunuyorsa belirtilmiyor [-32767, 32767] yalan.
// dayDays.cpp
#include <iostream>
#include <chrono>
int main() {
std::cout << 'n';
using namespace std::chrono_literals;
std::chrono::days days1
= std::chrono::day(30) - std::chrono::day(25); // (1)
std::chrono::days days2 = 30d - 25d; // (3)
if ( days1 == days2 &&
days1 == std::chrono::days(5)) std::cout << "Five daysn";
std::chrono::years years1
= std::chrono::year(2021) - std::chrono::year(1998); // (2)
std::chrono::years years2= 2021y - 1998y; // (4)
if ( years1 == years2 &&
years1 == std::chrono::years(23))
std::cout << "Twenty-three yearsn";
std::cout << 'n';
}
Türün iki nesnesi std::chrono::day Çıkarılmış (1), türden bir nesne alır std::chrono::days. Aynı şey bunun için de geçerlidir std::chrono::year (2) e std::chrono::years. Sayesinde using-Alan Alanı ile İzin std::chrono_literals Kelimenin tam anlamıyla zamanlayabilirim std::chrono::day VE std::chrono::year Doğrudan belirtin (3 ve 4).
Firma kurmak
Değişiklikleri sonuçlandırmanın çeşitli yolları vardır.
- using namespace std::literals: Tüm C ++ literallerini içerir,
- using namespace std::chrono: isimlerin tüm alanını kapatır std::chrono A,
- using namespace std::chrono_literals: Tüm zamanların tüm gerçeklerini içerir e e
- using namespace std::literals::chrono_literals: Tüm zamanların gerçeklerini içerir.
// literals.cpp
#include <chrono>
#include <string>
int main() {
{
using namespace std::literals;
std::string cppString = "C++ string literal"s; // (1)
auto aMinute = 60s; // (2)
// duration aHour = 0.25h + 15min + 1800s;
}
{
using namespace std::chrono;
// std::string cppString = "C++ string literal"s;
auto aMinute = 60s;
duration aHour = 0.25h + 15min + 1800s; // (3)
}
{
using namespace std::chrono_literals;
// std::string cppString = "C++ String literal"s;
auto aMinute = 60s;
// duration aHour = 0.25h + 15min + 1800s;
}
}
İsimlerin odasındaki bildirimler std::literals Literal String gibi tüm dahil edilen değişmezleri etkinleştirin ("C++ String-Literal "s 1) veya gerçek zaman (60s 2. satırda). std::chrono::duration Kalifiksiz kullanılamaz. Aksine, bildirim kullanıyor using namespace std::chrono gerçek zaman ve veri türüne izin verir std::chrono::duration (3) Çıkarılmaz: duration aHour = 0.25h + 15min + 1800s. Sayesinde using-Bilat using namespace::std::chrono::literals Tüm kelimeler mevcuttur.
zaman
Saat ve zaman süresine ek olarak, üçüncü temel tip C ++ 11'deydi std::chrono::time_point.
template<typename Clock,
typename Duration = typename Clock::duration>
class time_point;
A std::chrono::time_point Saate ve zamanın süresine bağlıdır. C ++ 20 ek zamanlar için aka sunar.

Ecxeption ile std::chrono::steady_clock Belirtilen süre boyunca bir zaman tanımlamak mümkündür. Saat dışındaki herkesle std::chrono::file_clock Bunları birkaç saniye belirtebilirsiniz. İle std::chrono::local_t VE std::chrono::system_clock Onları günlerce de ayarlayabilirsiniz.
Sırada ne var?
std::chrono::hh_mm_ss Hava, gece yarısı saniyelik saatler, dakikalar, saniye ve kesirlere ayrıldı. C ++ 20'deki bu yeni veri türü günün saati içindir.
(RME)