当前位置: 首页 > news >正文

做网站排名优化是怎么回事今天福州发生的重大新闻

做网站排名优化是怎么回事,今天福州发生的重大新闻,猪八戒网站做软件,wordpress script看可变参数模板代码时常会遇到省略号的使用,这类奇特的“...”出现位置还不固定,容易引起困惑。C最近一直不用都快废了,在此想对省略号的使用做个简单归纳以提醒自己。可变参数模板以两种方式使用省略号。 在参数名称的左侧,表示“…

看可变参数模板代码时常会遇到省略号的使用,这类奇特的“...”出现位置还不固定,容易引起困惑。C++最近一直不用都快废了,在此想对省略号的使用做个简单归纳以提醒自己。可变参数模板以两种方式使用省略号。 在参数名称的左侧,表示“参数包”,在参数名称的右侧,意为将参数包逐项展开。 

参数包声明

一般在可变参数类模板可变参数函数模板的定义时,会在参数名称的左边添加省略号以表示“参数包”:

template<typename... Arguments> class vtclass;vtclass< > vtinstance1;
vtclass<int> vtinstance2;
vtclass<float, bool> vtinstance3;
vtclass<long, std::vector<int>, std::string> vtinstance4;
template <typename... Arguments> returntype functionname(const Arguments&... args);
template <typename... Arguments> returntype functionname(Arguments&... args);
template <typename... Arguments> returntype functionname(Arguments&&... args);
template <typename... Arguments> returntype functionname(Arguments*... args);

当然,类模板和函数模板也可以限定一个以上参数的情形,限定多个参数以此类推不赘述:

template <typename First, typename... Rest> class classname;
template <typename First, typename... Rest> returntype functionname(const First& first, const Rest&... args);
 参数包展开

一般在函数参数声明或者函数调用时,在参数名称的右边添加省略号,表示将参数包逐项展开:

// v1 is NOT a function parameter pack:
template <typename... Types> void func1(std::vector<Types...> v1);// v2 IS a function parameter pack:
template <typename... Types> void func2(std::vector<Types>... v2);vector<int> v1, v2, v3;
func1(v1, v2, v3);//compile err
func2(v1, v2, v3);//compile ok

这里注意省略号的位置,虽然我们本意都是想展开参数包Types,但实际code的意图到底是vector<Types>里面的Types参数有多个,还是有多个vector<Types>?显然应该是后者,因为不存在template<class T...> class vector这样的形式,只有标准库中的template<class T> class vector。因此前者编译错误。

函数调用也在参数名(实参)后面添加省略号以将实参展开:

template <typename First, typename... Rest> void print(const First& first, const Rest&... rest) {cout << first << ", ";print(rest...); // recursive call using pack expansion syntax
}template<class...Args>
void Emplace(Args&&... args) {Destory();Create(forward<Args>(args)...);
}

这里同样forward的省略号在整个forward<Args>(args)的右边,而不是args...意为对每项args展开使用完美转发。

sizeof...运算符

最后还有一个特殊的sizeof...() 运算符(与旧的 sizeof() 运算符无关)会在可变模板参数中使用,以在编译期获取参数个数:

template<typename... Arguments>
void tfunc(const Arguments&... args)
{constexpr auto numargs{ sizeof...(Arguments) };X xobj[numargs]; // array of some previously defined type Xhelper_func(xobj, args...);
}
C语言中的省略号

C中的省略号一般和可变参数宏一起使用,该省略号不仅可以放在函数的参数列表中,也可以放在宏定义中:

#define SUM(...)  sum_impl(__VA_ARGS__, ())

省略号在宏定义中表示一个可以接收任意数量参数的变参。而 __VA_ARGS__ 是一个预处理器的宏,它表示传递给宏的省略号中的实际参数。至于可变参数宏如何使用参考我之前的这篇:https://blog.csdn.net/brahmsjiang/article/details/79366432

http://www.yayakq.cn/news/335273/

相关文章:

  • 装修网站怎么做的好处做网站后台用什么语言好
  • 天元建设集团有限公司济南中标项目宁波seo优化
  • 深圳网站建设公司百度蜘蛛开发网站
  • 景区网站建设的目标定位本地主机做网站
  • 地方网站商城怎么做模板之家官网首页
  • 网站培训方案自动生成设计图
  • 温州英文网站建设网站建设制作 南京公司哪家好
  • 个人网站用移动硬盘做服务器网站底部代码大全
  • 做外贸最适合的网站系统更换网站域名之后
  • 江苏省住房城乡建设厅门户网站亚洲建行网站打不开
  • 网站内容建设 发布形式手机网站与pc网站同步
  • 化妆品公司网站设计WordPress免费问答主题
  • 长春作网站的那家专业做化学招聘的网站有哪些
  • 做网站售后几年为wordpress首页添加关键词
  • 网站群系统破解版佛山知名网站建设公司
  • 网站制作的流程包括淮安哪有专业做网站的公司
  • 广东省建设工程执业资格注册中心网站东阳市城建设局网站
  • 怀集网站建设大连建设工程网
  • 多语种网站工程公司名称大全
  • 昆明电商网站建设ftp 修改网站
  • 个人网站样式网站建设公司费
  • 电视台网站策划书什么叫整合营销
  • 建设网站需要花费多少钱西地那非片的功能
  • 亚马逊店铺出售网站商城网站建设相关费用
  • 网站建设方案总结WordPress文章文字改颜色
  • 山东莱钢建设有限公司网站做网站排版用什么软件
  • 网站隐私条款模板深圳网络优化
  • 网络服务网站建设网站建设低价网站到底便宜在哪
  • 医院网站如何备案邯郸做外卖网站的公司
  • 网站建设的专业术语2021外贸网站有哪些