﻿# V1059\. Macro name overrides a keyword/reserved name\. This may lead to undefined behavior\.

Анализатор обнаружил макрос, имя которого перекрывает ключевое слово или зарезервированный стандартом идентификатор\.

Пример:

```cpp
#define sprintf std::printf
```

Здесь из\-за коллизии имен вызовы стандартной функции 'sprintf' после препроцессирования заменятся на вызовы 'printf'\. Такая замена приведет к некорректной работе программы\.

Диагностика также сообщает об удалении предопределенных макросов\.

Пример:

```cpp
#undef assert
```

Диагностика игнорирует переопределения ключевых слов, если они идентичны с точки зрения семантики\. 

Примеры:

```cpp
#define inline __inline
#define inline __forceinline
#define template extern template
```