12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- #ifndef BOOST_SYSTEM_DETAIL_SNPRINTF_HPP_INCLUDED
- #define BOOST_SYSTEM_DETAIL_SNPRINTF_HPP_INCLUDED
- #include <boost/config.hpp>
- #include <cstdio>
- #include <cstdarg>
- namespace boost
- {
- namespace system
- {
- namespace detail
- {
- #if ( defined(_MSC_VER) && _MSC_VER < 1900 ) || ( defined(__MINGW32__) && !defined(__MINGW64_VERSION_MAJOR) )
- inline void snprintf( char * buffer, std::size_t len, char const * format, ... )
- {
- # if defined( BOOST_MSVC )
- # pragma warning( push )
- # pragma warning( disable: 4996 )
- # endif
- if( len == 0 ) return;
- va_list args;
- va_start( args, format );
- _vsnprintf( buffer, len - 1, format, args );
- buffer[ len - 1 ] = 0;
- va_end( args );
- # if defined( BOOST_MSVC )
- # pragma warning( pop )
- # endif
- }
- #else
- #if defined(__GNUC__) && __GNUC__ >= 3
- __attribute__((__format__ (__printf__, 3, 4)))
- #endif
- inline void snprintf( char * buffer, std::size_t len, char const * format, ... )
- {
- va_list args;
- va_start( args, format );
- std::vsnprintf( buffer, len, format, args );
- va_end( args );
- }
- #endif
- }
- }
- }
- #endif
|