﻿# V2581\. MISRA\. Single\-line comments should not end with a continuation token\.

Диагностическое правило основано на руководстве [MISRA](https://www.misra.org.uk/) \(Motor Industry Software Reliability Association\) по разработке программного обеспечения\.

Однострочные комментарии не должны заканчиваться токеном продолжения предыдущей строки \('\\'\)\.

Пример:

```cpp
// Some comment \
```

Это может приводить к тому, что следующая за комментарием строка кода будет также закомментирована\. В следующем примере условие на самом деле не проверяется, потому что 'if' попадает в комментарий, и блок кода [выполняется всегда](https://godbolt.org/z/j6jcqs3eW):

```cpp
int startsWith(const char *str, const char *prefix);
void foo();

void foobar(const char *str)
{
  // Check that the string doesn't start with foo\bar\
  if (startsWith(str, "foo\\bar\\") == 0)
  {
    foo();
  }

  ....
}
```

Подобный код может успешно компилироваться и не приводить к предупреждениям компилятора\.

Если после символа '\\' в строке есть любые символы, кроме '\\' или перевода строки, то следующая строка [не будет считаться комментарием](https://godbolt.org/z/dbK3PEfox), и анализатор не выдаст предупреждение:

```cpp
int startsWith(const char *str, const char *prefix);
void foo();

void foobar(const char *str)
{
  // Check that the string doesn't start with "foo\bar\"
  if (startsWith(str, "foo\\bar\\") == 0)
  {
    foo();
  }
  
  ....
}
```