小编aer*_*fly的帖子

使用constexpr进行基本编译时格式字符串检查

在我们的项目中,我们使用printf兼容函数将消息添加到外部日志文件中.我们可以写

__LOG_INFO( "number of files = %d\n", number_of_files );
__LOG_INFO( "Just for information\n" );
Run Code Online (Sandbox Code Playgroud)

函数声明__LOG_INFO看起来像这样

template<int N>
inline void __LOG_INFO( const char (&fmt)[N] )
{
    call_printf( MODULE_NAME, fmt, debug_parameters() );
}

template<int N, typename T1>
static void __LOG_INFO( const char (&fmt)[N], const T1 &t1 )
{
    call_printf( MODULE_NAME, fmt, debug_parameters( t1 ) );
}

template<int N, typename T1, typename T2>
static void __LOG_INFO( const char (&fmt)[N], const T1 &t1, const T2 &t2 )
{
    call_printf( MODULE_NAME, fmt, debug_parameters( …
Run Code Online (Sandbox Code Playgroud)

templates compile-time-constant compile-time constexpr c++11

6
推荐指数
1
解决办法
1236
查看次数