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

网站设计建站池州网站制作公司

网站设计建站,池州网站制作公司,嘉兴企业自助建站系统,中铁中基建设集团网站模板 模板注意事项 模板的函数体和声明一定要在一起,即放在同一个.h文件中,而不能将其分开到cpp和h文件中模板的编译技巧就是尽量多编译,模板很难查找错误模板的报错一般只有第一行有作用模板指定类型从左到右依次指定 模板推导 #pragma #…

模板

模板注意事项
  • 模板的函数体和声明一定要在一起,即放在同一个.h文件中,而不能将其分开到cpp和h文件中
  • 模板的编译技巧就是尽量多编译,模板很难查找错误
  • 模板的报错一般只有第一行有作用
  • 模板指定类型从左到右依次指定
模板推导

#pragma
#include <iostream>
template <typename V, typename T, typename U> V add1(T data1, U data2) { return data1 + data2; }template <typename T, typename U> auto add2(T data1, U data2) { return data1 + data2; }//使用后置返回值,decltype+auto关键字
template <typename T, typename U> auto add3(T data1, U data2) -> decltype(data1 + data2) {std::cout << "Template Method!\n";return data1 + data2;
}//当存在模板和实例函数的时候,模板推导使用模板而不是实例函数
auto add3(int data1, double data2) -> decltype(data1 + data2) {std::cout << "Instance Method!\n";return data1 + data2;
}void testTemplateDeduce() {add1<double>(12, 12.7); //必须指定返回值类型才能进行推断,从中可以观察到的是模板参数可以只传递部分add2(12, 12.7);   //使用auto关键字代替模板参数的返回值add3<>(12, 12.7); //使用尖括号显示指定推导的类型为模板函数
}
模板的特化

注意:函数的全特化必须位于泛化版本之前进行声明·

//普通函数->特化->泛化//全特化,即显示指定模板的样子,但是实际上全部指定参数,模板自动推导
template <> void showLove(const char *str1, const char *str2) {std::cout << "Full specialization \n";std::cout << str1 << "  and " << str2 << " be there!";
}
//模板的特化与偏特化
template <typename T, typename U> void showLove(const T *str1, const U str2) {std::cout << "Generalization\n";std::cout << str1 << "  and " << str2 << " be there!"
}//函数模板是不能进行偏特化的,比如下面的做法就会报错
// template <> void showLove<double, U>(const char *str1, const U str2) {}
template <typename U> void showLove(const char *str1, const U str2) {std::cout << "模板函数的重载实现模拟偏特化" << std::endl;
}//测试特化
void testSpecializition() { showLove<>("lin", "cong"); }
非模板参数
//模板类型的默认值指定
int sub(int a, int b) { return a + b; }//指定函数指针的类型
typedef int (*FuncType)(int, int); //定义函数指针FuncType//函数模板上还可以指定非模板参数,非模板参数只需要指明类型即可
template <typename _Tp, typename _Up, typename _func = FuncType>
auto addProxy(_Tp data1, _Up data2, FuncType func = add) {std::cout << "template parameter\n";return func(data1, data2);
}//非模板参数可以位于任何地方,但是目前非类型模板参数支持度有限
//整型或者枚举型
//指针类型
//左值引用类型
// auto或者decltype(auto)
template <typename T, int a = 100> void nonTemplateParam() {T b = "str";std::cout << b << a << "\n";
}void testFunc() {std::cout << addProxy(2, 3, &sub) << "\n";nonTemplateParam<char *, 110>();
}

网络编程[TODO]

取值只有两种,0、1

函数
pthread_mutex_init
pthread_mutex_destroy

9 摧毁一个互斥锁

pthread_mutex_lock

加锁操对互斥量进行减一,即mutex–(或-1)

phread_mutex_unlock

解锁对互斥量进行加一,即mutex++(或+1),同时将阻塞在该锁上的所有线程全部唤醒

phread_mutex_trylock

非阻塞式加锁,正常情况下对一个信号量进行加锁,如果该信号量已经被加锁,pthread_mutex_lock会导致阻塞,而try_lock并不会导致阻塞。EBUSY作为返回值

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

相关文章:

  • 网站建设与制作教案网站seo软件
  • 电子商务网站建设 下载济南网站建设内容设计
  • 域名交易网站建设膜结构行业做网站
  • 宝安三网合一网站建设网站建设制作专业开发定制
  • 赤峰市建设厅官方网站wordpress带手机验证码
  • 如何寻找seo网站建设客户展馆展示设计公司招聘广告
  • 东莞做一个企业网站要多少钱微站设计
  • 网站空间如何搬家wordpress查看分类id
  • 中国大连网站做图库网站需要多少钱
  • 给别人做网站的话术公司的网站建设费应该怎么入账
  • 网站使用费用wordpress多个字体大小
  • 兰溪企业网站搭建地址南京华佑千家装饰工程有限公司
  • 网站上做相关链接微信app下载安卓版
  • 上海网站建设免费推荐全网营销的概念
  • 旅游电子商务网站建设的流程wordpress yeti1.92
  • 微信订阅号关键网站域名和服务器的关系
  • 互联网是做什么的莱阳seo外包
  • 上海学网站建设学做效果图的网站有哪些
  • 网络规划设计师教程(第2版)pdf北京网站优化多少钱
  • 谷歌网站收录提交网站建设 贸易
  • 广州网站建设网站建设公司黄页是官网吗
  • 网站建设毕业设计刻光盘上海 网站开发 兼职
  • 网站建设费用请示电子商务网页设计与网站建设论文
  • 网站挂服务器后图片不显示wordpress 农业主题
  • 网站建设需要什么设备wordpress创建子主题
  • 中建南方建设集团网站试玩网站建设
  • 产品宣传网站的重点网站首页seo关键词布局
  • 武进网站建设价位西部数码域名网站模板
  • 机械公司网站模板app制作教程培训
  • 如何做本地网站代理网关app未运行 歌华