[c++] Function return type deduction

In modern C++, we can use auto as the return type of a function to allow the compiler to deduce the return type based on the type of the value returned from the function. This feature is known as function return type deduction. It was introduced in C++14 and later improved in C++17.

Basic Usage

To use function return type deduction, simply replace the explicit return type with auto when defining the function. For example:

auto add(int a, int b) {
    return a + b;

In the above example, the return type of the add function is deduced to be int because the expression a + b has type int.


Function return type deduction can be helpful when working with complex or templated types, as it allows the function signature to be more concise and easier to maintain.

However, it’s important to note that using auto as the return type can make the code less readable if it’s not clear what the return type will be based on the function implementation. In such cases, providing an explicit return type might be more appropriate.


Function return type deduction in C++ can be a powerful tool to simplify function signatures and make the code more expressive. It’s particularly useful when dealing with complex types or when the exact return type is not immediately obvious.

For more information on function return type deduction, refer to the C++ standard or reputable C++ programming resources.