Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Нетипові параметри шаблонів | Використання шаблонів
Шаблони C++

Нетипові параметри шаблонів

Під час визначення шаблону можна не лише вказувати типи, а й передавати значення цим типам. Це дозволяє створювати шаблони, які поводяться по-різному залежно від наданих значень, але до цього ми повернемося трохи пізніше.

main.cpp

main.cpp

123456789101112
#include <iostream> // Non-type parameter means we won't use typename // Instead you can use an actual type for it template<int N> void PrintValue() { std::cout << N << std::endl; } int main() { // Call the template function with a literal integer PrintValue<5>(); // 5 }

Головна перевага цього підходу полягає в тому, що всі обчислення виконуються під час компіляції, що дає змогу використовувати його в метапрограмуванні.

main.cpp

main.cpp

1234567891011
#include <iostream> // Template function to calculate the square of a non-type parameter I template<int I> int Square() { return I * I; } // Return the square of I int main() { // The result of Square<5>() is computed at compile time int b = Square<5>(); // b will be initialized to 25 }

Під час запуску скомпільованої програми значення b вже дорівнюватиме 25. Обчислення виконується на етапі компіляції, що призводить до нульової кількості операцій під час виконання.

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 2. Розділ 3
single

single

Нетипові параметри шаблонів

Свайпніть щоб показати меню

Під час визначення шаблону можна не лише вказувати типи, а й передавати значення цим типам. Це дозволяє створювати шаблони, які поводяться по-різному залежно від наданих значень, але до цього ми повернемося трохи пізніше.

main.cpp

main.cpp

123456789101112
#include <iostream> // Non-type parameter means we won't use typename // Instead you can use an actual type for it template<int N> void PrintValue() { std::cout << N << std::endl; } int main() { // Call the template function with a literal integer PrintValue<5>(); // 5 }

Головна перевага цього підходу полягає в тому, що всі обчислення виконуються під час компіляції, що дає змогу використовувати його в метапрограмуванні.

main.cpp

main.cpp

1234567891011
#include <iostream> // Template function to calculate the square of a non-type parameter I template<int I> int Square() { return I * I; } // Return the square of I int main() { // The result of Square<5>() is computed at compile time int b = Square<5>(); // b will be initialized to 25 }

Під час запуску скомпільованої програми значення b вже дорівнюватиме 25. Обчислення виконується на етапі компіляції, що призводить до нульової кількості операцій під час виконання.

question mark

Яка ключова перевага використання нетипових параметрів шаблонів у шаблонах C++?

Виберіть правильну відповідь

Switch to desktopПерейдіть на комп'ютер для реальної практикиПродовжуйте з того місця, де ви зупинились, використовуючи один з наведених нижче варіантів
Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 2. Розділ 3
single

single

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

some-alt