关闭

c++11可变参模板实现字符串拼接

57人阅读 评论(0) 收藏 举报
分类:
template<typename OS,typename T> void ostr(OS& o,T t)
{
	o << t;
}
template<typename... ARG> auto argcat(ARG... arg)->string
{
	ostringstream os;
	int arr[] = { (ostr(os,arg),0)...};
	return os.str();
}

int main()
{
	cout << argcat(1, 2.3, "my name is", '\t',"lc") << endl;

	return 0;
}


输出:

12.3my name is  lc

1
0
查看评论

C++11中的变参模板的使用

在新的C++11标准里提供了变参模板,这个类似于在C语言里的printf这个打印函数,参数可以是随机的。当时记得在写嵌入式底层的时候儿需要实现一个类似于printf的函数,还使用var_start,var_end等实现了它。但是从C++0x其实大家都呼吁模板中也提供类似的功能,现在终于有了。 C+...
  • fpcc
  • fpcc
  • 2017-01-16 10:59
  • 1371

泛化之美--C++11可变模版参数的妙用

泛化之美--C++11可变模版参数的妙用 1概述 C++11的新特性--可变模版参数(variadic templates)是C++11新增的最强大的特性之一,它对参数进行了高度泛化,它能表示0到任意个数、任意类型的参数。相比C++98/03,类模版和函数模版中只能含固定数...
  • linuxheik
  • linuxheik
  • 2016-07-07 17:19
  • 3131

C++11:可变参数模板实现print输出参数

C++11支持可变参数模板的特性,真的是很好用。 下面代码实现的print函数,就利用可变参数模板以及函数模板递归调用,实现将任意多个不同类型的参数顺序输出打印到std::ostream流中。#include <iostream> /* 终止递归函数 */ inline void ar...
  • 10km
  • 10km
  • 2016-04-23 15:53
  • 1107

使用C++11的可变参数模板改造单例模式

本人以前写过一个C++的单例模式(见此 设计模式C++之单例),想法很简单,不值一提。 最近,看了C++11的新特性中有可变参数模板,想到是否可以以此来改造单例模式。参考了网上的一些经验,写了一个大多数情况下可以通用的一个单例模式,以此记录。template <typename T> ...
  • chlk118
  • chlk118
  • 2015-07-15 20:59
  • 1380

C++ 11 可变模板参数详解

C++ 11 可变模板参数详解1. 概述​ 可变模板参数(variadic templates)是C++ 11新增的最强大的特性之一,它对参数进行高度泛化,它能表示0到任意个数、任意类型的参数。2. 可变模板参数的展开​ 可变参数模板和普遍模板的语义是一样的,只是写法上稍有区别,声明可变参数...
  • zt_xcyk
  • zt_xcyk
  • 2017-06-29 15:24
  • 240

C++11变参模板

变参模板是C++11中新的特性,它主要解决了原有模板参数数量不可变的问题。现在标准库的tuple实现就是基于变参模板来实现的。 还是从C的变参函数来说吧,经典的就是printf了, 它基于可变参数 void print(const char *fmt, ...) { va_list ...
  • cnsword
  • cnsword
  • 2012-09-26 23:06
  • 6549

每日一题20:与C++11的第一次邂逅——可变参模板与C#委托模拟

这篇文章本来是前天发的,但是不知道为什么CSDN上没有显示,可能是我没发,记错了。又由于没有留底稿,还是重写一下吧,也为知己不留底稿的恶习做个标记。 之所以接触C++11是因为自己前天突发奇想想用C++来模拟一下C#里的委托,但是尝试过很多方法和各种搜索后,知道之前的C++是不支持模板重载的,所以...
  • liao_jian
  • liao_jian
  • 2015-04-11 11:01
  • 750

C++11变参模板的参数包

Parameter pack 原文来自这里 A template parameter pack is a template parameter that accepts zero or more template arguments (non-types, types, or templates)...
  • zhouguoqionghai
  • zhouguoqionghai
  • 2015-09-22 21:01
  • 4013

c++11 单例模式可变参数实现完美转发

//单例模版 template class singleton { public:     template     static bool CreateInstance(Args&&... args)     { ...
  • zsl65326
  • zsl65326
  • 2015-10-26 14:00
  • 738

C 可变长参数 VS C++11 可变长模板

有些时候,我们定义一个函数,可能这个函数需要支持可变长参数,也就是说调用者可以
  • zj510
  • zj510
  • 2014-07-03 13:50
  • 9642
    个人资料
    • 访问:1147次
    • 积分:60
    • 等级:
    • 排名:千里之外
    • 原创:2篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档