II. Amaliy qism Mustaqil ishimning mavzusi “Vektorlarni funksiya parametrlarin sifatida qo’llanilishi”
auto a = sqr(10); // Num = int // a имеет тип int и значение 100 auto f = sqr(2.5f); // Num = float // f имеет тип float и значение 6.25f
auto a = sqr(10); // 10 имееттип int, поэтому Num = int // a имеет тип int и значение 100 auto f = sqr(2.5f); // 2.5f имеет тип float, поэтому Num = float // f имеет тип float и значение 6.25f
template <class First, class Second = First>
struct Pair // Паразначенийтипов First и Second. {
First first;
Second second;
// Конструктор: First() и Second() -- вызовы конструкторов по умолчанию // для типов First и Second соответственно (определены и для встроенных типов). Pair(const First &first = First(), const Second &second = Second())
: first(first), second(second) /* списокинициализации: вызов конструкторов копирования для обоих полей */ {}
};
// Пара чисел с плавающей точкой. Pair p2(1, 2); // First = double, Second = First = double assert(p2.first == 1. && p2.second == 2.);
// Пара "целое, строка". Pair ids; // First = size_t, Second = string; ids.first = 23;
ids.second = "23 is the new 42";
template <class T>
using Id_block = Pair;
// Теперь Id_block -- то же, что и Pair для любого T. #include #include // C++14, conditional_t, is_same