Например, функция ниже имеет однозначный тип возврата. Нет реальной необходимости указывать тип более одного раза. < /P>
Код: Выделить всё
auto example_function() {
// This could also be written as
//
// `return 1;`
//
// 1 is of type `int`.
// It can be made even more explicit with a type cast,
// if you so desire, or provide a variable with an explicit
// type as shown below.
int i = 1;
return i;
}
< /code>
предпочтительно оставить компилятор, чтобы вывести тип возврата в таких простых случаях. Если тип возврата изменяется, его необходимо изменить только в одном месте, а не в нескольких местах.auto
Код: Выделить всё
g++-14 -std=c++23
Код: Выделить всё
error: use of `auto create_server_fd(int)` before deduction of `auto`
Код: Выделить всё
#include "create_server_fd.hpp"
auto create_server_fd(const int server_port) {
// do some work to create `fd`
int fd = 10; // example
return fd;
}
Код: Выделить всё
// main.cpp
#include "create_server_fd.hpp"
int main() {
const auto server_fd = create_server_fd(100); // example
}
< /code>
Должно ли это работать? Может ли компилятор не осмотреть код объекта создать из компиляции comply_server_fd.cpp
Если это нельзя заставить работать, что больше разумная вещь, чтобы исправить это?
Подробнее здесь: https://stackoverflow.com/questions/794 ... to-its-own