Шаблоны в C++ реализуются на этапе компиляции, то есть компилятор генерирует отдельный код для каждого типа, с которым используется шаблон. Это приводит к высокой производительности, но также к увеличению размера исполняемого файла.
Пример использования шаблона функции в C++:
// Объявление шаблона функции swap, которая меняет местами два значения
template<typename T>
void swap(T& a, T& b) {
T temp = a; // Создание временной переменной типа T
a = b; // Присваивание значения b переменной a
b = temp; // Присваивание значения temp переменной b
}
// Вызов шаблона функции swap с разными типами аргументов
int x = 10, y = 20;
swap(x, y); // Автоматический вывод типа T как int
std::cout << x << " " << y << std::endl; // Вывод 20 10
std::string s1 = "Hello", s2 = "World";
swap(s1, s2); // Автоматический вывод типа T как std::string
std::cout << s1 << " " << s2 << std::endl; // Вывод World Hello
Интересные факты и фичи языков программирования у нас в канале, заходи :)