Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Typename Parameter as a Return Type | Templates Usage
C++ Templates

book
Typename Parameter as a Return Type

Templates are not just for defining the types of parameters. A powerful feature of templates is that the return type of a function can also depend on the template parameter. This gives you the flexibility to create generic functions with return types that adjust based on the template type provided.

cpp

main

copy
#include <iostream>

template<typename T>
T MyFirstTemplateReturn()
{
// Returning a default-initialized value of type T
return T{};
}

int main()
{
// Call the template with the void type
std::cout << typeid(MyFirstTemplateReturn<void>()).name() << std::endl;
}
1234567891011121314
#include <iostream> template<typename T> T MyFirstTemplateReturn() { // Returning a default-initialized value of type T return T{}; } int main() { // Call the template with the void type std::cout << typeid(MyFirstTemplateReturn<void>()).name() << std::endl; }

In the example above, the function's return type is defined by the template parameter T. When we specify void as the type, the compiler interprets it accordingly.

Завдання

Swipe to start coding

Create a simple template that returns the passed value

  1. Write a simple template function called GetValue.
  2. Use the template's typename parameter as the return type.
  3. Add a parameter to the template function with the same type as the return type.
  4. Return the function's parameter.

Рішення

cpp

solution

#include <iostream>

template<typename T>
T GetValue(T value)
{
return value;
}

int main()
{
std::cout << GetValue<int>(42) << std::endl;
std::cout << GetValue<std::string>("c<>definity") << std::endl;
std::cout << GetValue<float>(21.55) << std::endl;
std::cout << GetValue<bool>(false) << std::endl;
}

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

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

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

Секція 2. Розділ 1
#include <iostream>

// Implement template function here

int main()
{
std::cout << GetValue<int>(42) << std::endl;
std::cout << GetValue<std::string>("c<>definity") << std::endl;
std::cout << GetValue<float>(21.55) << std::endl;
std::cout << GetValue<bool>(false) << std::endl;
}

Запитати АІ

expand
ChatGPT

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

some-alt