using std::chrono;
year_month_day ymd = 2016y/May/29d; // 2016-05-29
auto tp = sys_days{ymd} + 7h + 30min + 6s + 153ms; // 2016-05-29 07:30:06.153 UTC
zoned_time zt = {"Asia/Tokyo", tp};
cout << zt << '\n'; // 2016-05-29 16:30:06.153 JST
auto last_friday_feb = February/Friday[last];
std::cout << 4000 / last_friday_feb << std::endl;
void do_something(int* p, size_t size);
std::vector<int> v;
do_something(v.data(), v.size());
int data[1024];
do_something(data, std::size(data));
boost::container::small_vector<int, 32> sm;
do_something(sm.data(), sm.size());
void do_something(int* p, size_t size) {
std::sort(p, p + size);
for (size_t i = 0; i < size; ++i) {
p[i] += p[0];
}
}
void do_something(std::span<int> p) {
std2::sort(p);
for (int& v: p) {
v += p[0];
}
}
// ...
std::vector<int> v;
do_something(v);
int data[1024];
do_something(data);
boost::container::small_vector<int, 32> sm;
do_something(sm);
template<class T> T::R f();
template<class T> struct S {
using Ptr = PtrTraits<T>::Ptr;
T::R f(T::P p) {
return static_cast<T::R>(p);
}
auto g() -> S<T*>::Ptr;
};
void compute_on_aligned_data(float* data, size_t N) {
size_t i = 0;
for (; i + native_simd<float>::size() <= N; i += native_simd<float>::size()) {
native_simd<float> v(data + i, vector_aligned);
where(v > 100.f, v) = 100.f + (v - 100.f) * 0.1f;
v.copy_to(data + i, vector_aligned);
}
for (; i < N; ++i) {
float x = data[i];
if (x > 100.f) {
x = 100.f + (x - 100.f) * 0.1f;
}
data[i] = x;
}
}
future​<std::string>​ ​concat​(const​ std::string​& ​ prefix​, future​<std::string>​ suffix​) {
co_return ​ (prefix ​ + ​ co_await suffix​);
}
Source: https://habr.com/ru/post/351492/