std::decay_t — один из самых полезных type traits в C++. Он имитирует процесс передачи параметра по значению, «разрушая» исходный тип.
🔄Что именно делает decay_t?
• Убирает cv-квалификаторы • Превращает ссылки в соответствующие типы без ссылок • Преобразует массивы в указатели • Преобразует функции в указатели на функции
💻Пример:
#include <type_traits> #include <iostream>
int main() { // const int& -> int static_assert(std::is_same_v<std::decay_t<const int&>, int>);
std::cout << "All assertions passed!" << std::endl; }
🚀Где это используется?
• В шаблонном программировании для упрощения работы с типами • В std::make_shared и std::make_unique для определения типа создаваемого объекта • При написании обобщенного кода, где нужна правильная дедукция типов
🔍 И да, название «decay» («разрушение») действительно отражает суть — тип «разрушается» до базового представления!
std::decay_t — один из самых полезных type traits в C++. Он имитирует процесс передачи параметра по значению, «разрушая» исходный тип.
🔄Что именно делает decay_t?
• Убирает cv-квалификаторы • Превращает ссылки в соответствующие типы без ссылок • Преобразует массивы в указатели • Преобразует функции в указатели на функции
💻Пример:
#include <type_traits> #include <iostream>
int main() { // const int& -> int static_assert(std::is_same_v<std::decay_t<const int&>, int>);
std::cout << "All assertions passed!" << std::endl; }
🚀Где это используется?
• В шаблонном программировании для упрощения работы с типами • В std::make_shared и std::make_unique для определения типа создаваемого объекта • При написании обобщенного кода, где нужна правильная дедукция типов
🔍 И да, название «decay» («разрушение») действительно отражает суть — тип «разрушается» до базового представления!
The campaign, which security firm Check Point has named Rampant Kitten, comprises two main components, one for Windows and the other for Android. Rampant Kitten’s objective is to steal Telegram messages, passwords, and two-factor authentication codes sent by SMS and then also take screenshots and record sounds within earshot of an infected phone, the researchers said in a post published on Friday.
Telegram hopes to raise $1bn with a convertible bond private placement
The super secure UAE-based Telegram messenger service, developed by Russian-born software icon Pavel Durov, is looking to raise $1bn through a bond placement to a limited number of investors from Russia, Europe, Asia and the Middle East, the Kommersant daily reported citing unnamed sources on February 18, 2021.The issue reportedly comprises exchange bonds that could be converted into equity in the messaging service that is currently 100% owned by Durov and his brother Nikolai.Kommersant reports that the price of the conversion would be at a 10% discount to a potential IPO should it happen within five years.The minimum bond placement is said to be set at $50mn, but could be lowered to $10mn. Five-year bonds could carry an annual coupon of 7-8%.