warning C4503: '
По документации: "The decorated name was longer than the compiler limit (247), and was truncated."
У него есть "родственный" ворнинг: C4786
По документации: "The debugger cannot debug code with symbols longer than 255 characters. "
У Visual C++ 6.0 есть ограничение на длину объявления переменной, объявления функции . И если попытаться объявить что-нибудь более менее сложное, какой-нибудь мэп с участием векторов, то он в этот лимит не влезет.
Рецепты по лечению:
- Использовать другой компилятор :-)
- Использовать define'ы, чтобы сократить объявления переменных. #define basic_string b_s. Это извращение какое-то.
- Использовать typedef'ы. Хотя встречала мнение, что это помогает не всегда...
- Выключить этот ворнинг с помощью #pragma warning(disable: 4503). Соответственно, объявление будет обрезано. Какие-либо проблемы могут возникнуть, только если эти начальные символы совпадут с начальными символами другого объявления, что маловероятно.
3 коммент.:
5-й Способ. Вместо Попыток Описать Все Нагромождением Элементарных Типов, Создать Наконец Свои Классы С Нормальным Поведением И Именами. Вот :-)
спасибо)
Спасибо, решил просто выключить в хидере через "прагму".
Единственная опасность ошибка Линкера - если в декларациях переменных после обрезки 4096 символов совпадут.
Собственно об этом говорят на Мсдн, также там советуют делать обертки структурами или классами, но как по мне это совсем Лишнее.
https://msdn.microsoft.com/en-us/library/074af4b6.aspx
Отправить комментарий