Templates with Default Type Parameters
Свайпніть щоб показати меню
Можливо вказати тип параметра за замовчуванням для шаблону класу, і починаючи з C++11, аргументи шаблону за замовчуванням також можна використовувати у шаблонах функцій. Щоб встановити тип за замовчуванням, просто вкажіть потрібний тип після знака рівності для параметра шаблону.
main.cpp
123456789101112131415#include <iostream> template <typename T = int> // `int` will be used as a default type class Box { T value; // Stores the value of type `T` public: Box(T value) : value(value) { std::cout << this->value; } }; int main() { // Type not specified // VV Box<> intBox(25.5); }
Під час виконання наведеного вище коду результатом буде 25 замість 25.5. Це відбувається тому, що тип за замовчуванням для класу Box встановлено як int, що призводить до відкидання дробової частини значення.
Подібно до стандартних аргументів функцій, якщо один параметр шаблону має значення за замовчуванням, то всі параметри шаблону після нього також повинні мати значення за замовчуванням.
Окрім типових параметрів за замовчуванням, C++ дозволяє використовувати нетипові параметри шаблону зі значеннями за замовчуванням. Нетипові параметри можуть бути цілочисельними типами, вказівниками або посиланнями. Щоб вказати нетиповий параметр за замовчуванням, достатньо призначити йому значення після параметра.
array.h
123456// `int` and `10` are default parameters template <typename T = int, size_t Size = 10> struct Array { T arr[Size]; // Array with a fixed size of `Size` }
Параметри шаблону за замовчуванням спрощують код, зменшують надмірність і дозволяють шаблонам обробляти типові випадки використання з мінімальними зусиллями, забезпечуючи можливість налаштування за потреби.
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат