﻿# V685\. The expression contains a comma\. Consider inspecting the return statement\.

Анализатор посчитал подозрительным значение, возвращаемое из функции\. В нём используется оператор ',' \(запятая\)\. Это не всегда ошибка, но этот код стоит проверить\.

Пример подозрительного кода:

```cpp
int Foo()
{
  return 1, 2;
}
```

Функция вернёт значение 2\. Наличие числа 1 здесь избыточно и не оказывает никакого влияния на поведение программы\.

Если это просто опечатка, то следует убрать лишнюю единицу:

```cpp
int Foo()
{
  return 2;
}
```

Но возможно, здесь скрывается настоящая ошибка\. И именно поэтому, анализатор обращает внимание на такие конструкции\. Например, вдруг в процессе рефакторинга случайно удалили вызов функции\.

Тогда, исправленный вариант кода может быть таким:

```cpp
int Foo()
{
  return X(1, 2);
}
```

Запятая иногда может быть полезна при работе с оператором 'return'\. Например, следующий код можно сократить, использую запятую\.

Длинный код:

```cpp
if (A)
{
  printf("hello");
  return X;
}
```

Сокращённый код:

```cpp
if (A)
  return printf("hello"), X; // Нет предупреждения
```

Мы не считаем короткий вариант кода красивым и не рекомендуем его использовать\. Однако, так часто пишут и такой код имеет смысл\. Поэтому, анализатор не выдаёт предупреждение, если стоящее слева от запятой выражение, оказывает влияние на работу программы\.