Как обойти warning C4996: std::transform::_Unchecked_iterators::_Deprecate

189
22 апреля 2018, 23:18
const char* BuildPath( const char* base, const char* game, const char* relativePath ) {
    static char szPath[260];
    std::fill( std::begin( szPath ), std::end( szPath ), 0 );
    // Махинации с путями
    sprintf_s( szPath, _countof( szPath ), "%s/%s/%s", base, game, relativePath );
    std::replace( std::begin( szPath ), std::end( szPath ), '\\', '/' );
    std::transform( std::begin( szPath ), std::end( szPath ), std::begin( szPath ),
                    [] ( unsigned char c ) { return ::tolower( c ); } ); //4996
    return szPath;
}
Answer 1

Используйте array:

const char* BuildPath( const char* base, const char* game, const char* relativePath ) {
    static ::std::array<char, 260> szPath;
    std::fill( std::begin( szPath ), std::end( szPath ), 0 );
    // Махинации с путями
    sprintf_s(szPath.data(), szPath.size(), "%s/%s/%s", base, game, relativePath );
    std::replace( std::begin( szPath ), std::end( szPath ), '\\', '/' );
    std::transform( std::begin( szPath ), std::end( szPath ), std::begin( szPath ),
                    [] ( unsigned char c ) { return ::tolower( c ); } ); //4996
    return szPath.data();
}
Answer 2
const char* BuildPath( const char* base, const char* game, const char* relativePath ) {
    static char szPath[260];
    std::fill(szPath ,  szPath  + 260, 0 );
    // Махинации с путями
    sprintf_s( szPath, _countof( szPath ), "%s/%s/%s", base, game, relativePath );
    std::replace(szPath , szPath + 260 , '\\', '/' );
    std::transform( szPath,  szPath + 260, szPath,
                    [] ( unsigned char c ) { return ::tolower( c ); } ); //4996
    return szPath;
}
READ ALSO
Закрытия массива потоков

Закрытия массива потоков

Мне необходимо создать приложение, в котором происходит перемножение двух квадратных матрицПри этом пользователю предоставляется сделать...

183
Как сделать вывод из текстового файла слов в которых символ m повторяется ровно 3 раза c++? [требует правки]

Как сделать вывод из текстового файла слов в которых символ m повторяется ровно 3 раза c++? [требует правки]

Вывод из текстового файла слов в которых символ m повторяется ровно 3 раза c++ добавить к коду ниже

208
Как через программу запустить cmd команду - C++ Builder

Как через программу запустить cmd команду - C++ Builder

Как при нажатии кнопки (WinForApp) в cmd выполнялась команда с моими параметрами?

242
Как перенести int, double, char в char const*?

Как перенести int, double, char в char const*?

Как перенести int, double, char в char const* ?

267