﻿# V3519\. AUTOSAR\. The comma operator should not be used\.

This diagnostic rule is based on the software development guidelines developed by [AUTOSAR](https://www.autosar.org/) \(AUTomotive Open System ARchitecture\)\.

Avoid using the 'comma' operator as it may be confusing to code maintainers\. 

Look at the following example:

```cpp
int foo(int x, int y) { .... }
foo( ( 0, 3), 12 );
```

This code could be confusing to a programmer who is not familiar with the function's signature\. They could think that the function is called with three arguments, but it is not so: the 'comma' operator in the '\(0, 3\)' expression will evaluate the left and right arguments and return the latter\. As a result, the function call will actually look like this:

```cpp
foo( 3, 12 );
```

This warning is issued in other cases as well, for example:

```cpp
int myMemCmp(const char *s1, const char *s2, size_t N)
{
  for (; N > 0; ++s1, ++s2, --N) { .... }
}
```