﻿# V2533\. MISRA\. C\-style and functional notation casts should not be performed\.

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

Это правило справедливо только для C\+\+\.

C\-подобное \(C\-style cast\) и приведение типов в функциональном стиле \(functional cast\) способны осуществлять преобразования между несвязанными типами, что может привести к ошибке\.

Следует явно приводить типы с использованием операторов 'static\_cast', 'const\_cast' и 'reinterpret\_cast'\.

Примеры, на которые анализатор выдаст срабатывание: 

```cpp
int i;
double d;
size_t s;
void *p;
....
i = int(p);      //V2533
d = (double)s;   //V2533
s = (size_t)(i); //V2533 
p = (void *)(d); //V2533
```

Исключение: приведение к типу void не несёт в себе никакой опасности и используется, чтобы подчеркнуть, что некий результат никак не используется\. Пример:

```cpp
(void)fclose(f);
```