Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

как победить sprintf ?

26.05.17 03:58
как победить sprintf ?
 
anly коренной житель
anly
Последний раз изменено 26.05.17 04:01 (anly)

в проэкте встречается много sprintf который, как известно, принимает любые аргументы и в любом количестве там где три точки: sprintf(char* buffer, const char* format, ...);


Беда в том что у одного из аргументов (который в троеточии) поменялся тип. Например, раньше был const char*, а стал std::string.


Студия 2015 дает хоть предупреждение в этом случаее, а вот Студия 2013 почему-то не даёт! Опции проэктов сравнивал - аналогичные. Программа просто вылетает при выполнении. Вот думаю как гарантированно найти все такие места?


Вариант конечно есть, но трудоёмкий: не использовать sprintf вообще, а поиском/заменой заменить на MySprintf, которых сделать кучу на все используемые в проекте случаи, без трёх точек.

Но может есть проще вариант?

Проклят нарушающий межи ближнего своего (Втор.27:17)
 

Перейти на