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

Данное диагностическое правило основано на руководстве MISRA (Motor Industry Software Reliability Association) по разработке программного обеспечения.

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

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

Следует явно приводить типы с использованием операторов 'static_cast', 'const_cast' и 'reinterpret_cast'.

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

    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 не несёт в себе никакой опасности и используется, чтобы подчеркнуть, что некий результат никак не используется. Пример:

    (void)fclose(f);

Данная диагностика классифицируется как:

MISRA-CPP-2008-5.2.4