🖥 Неочевидные возможности C++Рассмотрим некоторые продвинутые фишки C++, которые часто упускаются, но могут существенно улучшить ваш код.
Начнем с
std::variant
— позволяет хранить значения разных типов в одной переменной, что делает ваш код более безопасным и удобным по сравнению с использованием
void*
или сложных структур:
#include <variant>
#include <iostream>
std::variant<int, double, std::string> data = 42;
data = 3.14;
data = "Hello, C++";
std::visit([](auto&& arg) { std::cout << arg << '\n'; }, data);
Функции с
constexpr
могут быть вычислены компилятором во время компиляции программы, что приводит к более эффективному и быстрому коду:
constexpr int square(int x) {
return x * x;
// Функция вычисляет квадрат числа
}
constexpr int result = square(5);
// Значение вычисляется на этапе компиляции
Под конец расскажу про
Structured Bindings — упрощает работу с парами, кортежами и структурами, позволяя распаковывать значения в отдельные переменные:
std::tuple<int, double, char> getValues() {
return {42, 3.14, 'A'}
}
auto [intValue, doubleValue, charValue] = getValues();
std::cout << intValue << ", " << doubleValue << ", " << charValue << '\n';
Есть идеи, что можно будет обсудить в следующем посте? Делись мнением в комментариях!
📣 C++ Ready | #практика