Поддержка char16_t
и char32_t
была добавлена в Visual Studio 2015. Это означает, что вы больше не можете создавать символы с этими именами, но опять же они вам больше не нужны, так как они уже существуют.
Решение состоит в том, чтобы удалить создание typedef или макроса или, по крайней мере, защитить его, когда defined(MSC_VER) && _MSC_VER < 1900
.
См. MSDN :
char_16_t и char32_t Вы больше не можете использовать char16_t или char32_t в качестве псевдонимов в typedef, потому что эти типы теперь обрабатываются как встроенные.Обычно пользователи и авторы библиотек определяли char16_t и char32_t как псевдонимы uint16_t и uint32_t соответственно.
Чтобы обновить код, удалите объявления typedef и переименуйте любые другие идентификаторы, которые конфликтуют с этими именами.