#3
by 参照魚 » 6年前
templateを用いずに関数で完結させるとしたらこんな感じでした。
コード:
int foo( const char* format, ... ){
va_list list;
va_start( list, format );
const auto num = std::vsnprintf( nullptr, 0, format, list );
const auto buf = new char[num];
::vsprintf( buf, format, list );
const auto val = printf( "%s", buf );
delete [] buf;
va_end( list );
return val;
}
templateを用いずに関数で完結させるとしたらこんな感じでした。
[code]
int foo( const char* format, ... ){
va_list list;
va_start( list, format );
const auto num = std::vsnprintf( nullptr, 0, format, list );
const auto buf = new char[num];
::vsprintf( buf, format, list );
const auto val = printf( "%s", buf );
delete [] buf;
va_end( list );
return val;
}
[/code]