用initializer_list实现C++变参函数
Posted Neo Yang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用initializer_list实现C++变参函数相关的知识,希望对你有一定的参考价值。
变参函数一般用于开发软件辅助功能,如日志记录。核心业务代码对入参会做严格的限制,一般用不到变参函数。在早期C++版本实现变参函数用C的语法,现代C++可以使用initializer_list。
下面定义个通过控制台输出日志的变参函数,写个demo.
函数定义
namespace neo
/*****************************************************************************
* Function: LogConsole
* Description: 打印日志到控制台
*
* Input: logParams-日志参数列表
* author: neo
******************************************************************************/
template <class T>
void LogConsole(std::initializer_list<T> logParams)
std::string logInfo;
for (T param : logParams)
logInfo.append(param).append(" ");
std::cout << logInfo << std::endl;
Client端代码
// 1. 调用变参函数打印日志
std::string str = "qwqw1212";
neo::LogConsole("1", "2", "asas", str.c_str());
initializer_list是模板类,通过 … 构造参数对象。
以上是关于用initializer_list实现C++变参函数的主要内容,如果未能解决你的问题,请参考以下文章
C++ std::initializer_list 实现原理勘误
c++ 全局变量初始化(initializer_list的向量)
C++ std::initializer_list data() 函数错误