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

做国外订单用哪个网站网页生成器

做国外订单用哪个网站,网页生成器,小程序代理好做吗,织梦同时运行多个网站C模板函数 函数模板简单的函数模板模板类型推导返回输入的类型,模板返回的类型由输入的决定返回类型的模板参数返回值使用auto,编译器自动推导 默认模板实参模板参数重载函数模板 constexpr关键字 函数模板 简单的函数模板 typename 可以使用class代替…

C++模板函数

  • 函数模板
    • 简单的函数模板
    • 模板类型推导
      • 返回输入的类型,模板返回的类型由输入的决定
      • 返回类型的模板参数
      • 返回值使用auto,编译器自动推导
    • 默认模板实参
    • 模板参数
    • 重载函数模板
  • constexpr关键字

函数模板

简单的函数模板

typename 可以使用class代替,但是不可以是使用struct代替。
template <typename T>
T mmax(T a, T b)
{return b < a ? a : b;
}

模板类型推导

返回输入的类型,模板返回的类型由输入的决定


template <typename T>
T mmax(T a, T b)
{return b < a ? a : b;
}

T是由输入的参数类型推导出来的,输入int T就是int型的。

如果a 和 b一个是int一个是double就需要定义两个typename。

template <typename T1, typename T2>
T1 mmax(T1 a, T2 b)
{return b < a ? a : b;
}

返回类型的模板参数

当模板参数和调用参数之间没有关联的时候,且模板参数不确定的时候,必须在调用时显式指定模板实参。

添加三个模板类型,调用的时候必须指定模板的返回类型
template <typename TR, typename T1, typename T2>
TR mmax(T1 a, T2 b)
{return b < a ? a : b;
}std::cout << mmax<int>(10.3,6)<< endl;

返回值使用auto,编译器自动推导

从C++14开始,可以通过不声明任何返回类型来实现。

template <typename T1, typename T2>
auto mmax(T1 a, T2 b) -> typename std::decay<decltype(b < a ? a : b)>::type
{return b < a ? a : b;
}

这里使用了类型特征 std::decay<>,其返回结果类型为成员typestd::decay<>在标准库<type_traits> 中定义。由于其成员type是一个类型,因此必须用typename修饰这个表达式才能访问它。

从C++11,C++标准库提供了一种指定选择“更一般的类型”的方法。std::common_type<>::type 萃取作为模板实参传递的两个或多个不同类型的“公共类型”。

C++11写法
template <typename T1, typename T2>
typename std::common_type<T1, T2>::type mmax(T1 a, T2 b)
{return b < a ? a : b;
}
C++ 14 写法
template <typename T1, typename T2>
std::common_type_t<T1, T2> mmax(T1 a, T2 b)
{return b < a ? a : b;
}

std::common_type<> 也是在标准库<type_traits> 中。
它可以萃取一个具有作为结果类型的type 成员的结构体。
其核心用法:

typename std::common_type<T1, T2>::type

从C++14 开始,可以通过在特征名称后面附加_t 并省略typename::type

std::common_type_t<T1, T2>

在内部它根据运算符?:的语法规则或具体的类型的特化来选择类型。

默认模板实参

使用三目运算符?: 不过必须在a和b参数调用之前使用。

template <typename T1, typename T2, typename TR = std::decay_t<decltype(true ? T1() : T2())>>
TR mmax(T1 a, T2 b)
{return b < a ? a : b;
}

使用std::common_type<> 类型特征来指定返回类型的默认值:

template <typename T1, typename T2, typename TR = std::common_type_t<T1, T2>>
TR mmax(T1 a, T2 b)
{return b < a ? a : b;
}

需要注意的是,std::common_type<> 会进行退化,因此返回类型不可能变成引用类型。

模板参数

template<typename T, int N>
void Print(T a)
{std::vector<T> num;for(int i = 0; i < N; ++i){num.push_back(i + a);}for(auto& value : num){std::cout << static_cast<T>(value) << std::endl;}
}

重载函数模板

int mmax(int a, int b)
{return b < a? a : b;
}template<typename T>
T mmax(T a, T b)
{return b < a? a : b;
}std::cout << mmax(10.3,6.1)<< endl; //使用的模板函数

一个模板函数可以和一个普通函数同名且可以用相同类型实例化的函数模板共存。在所有其他因素都相同的情况下,重载解析过程优先选择非模板函数。

std::cout << mmax('a', 6) << endl;

由于模板参数推导不允许自动类型转换,而普通函数可以,因此此函数使用的是非模板函数。

template <typename T1, typename T2>
auto mmax(T1 a, T1 b)
{return b < a ? a : b;
}template <typename TR, typename T1, typename T2>
TR mmax(T1 a, T1 b)
{return b < a ? a : b;
}

auto a = mmax<double, int>(10.3, 6);使用第一个模板
auto b = mmax<long, double>(10.3, 6); 使用第二个模板
auto c = mmax<int>(10.3, 6); 错误: 两个模板都能匹配

两个模板都能匹配通常会造成重载解析过程中无从选择,并产生歧义。因此在重载函数模板时,应该确保对于任何调用,其中只有一个与之匹配。

constexpr关键字

从C++11开始,可以使用关键字constexpr来启用在编译器使用代码计算某些数值的功能。

constexpr int Sum(int a, int b)
{return a + b;
}
int Iarray[Sum(10,3)];

使用这个关键字修饰函数就可以自定义数组大小,如果不用这个关键字修饰代码编译会出错的。


文章转载自:
http://choroid.sLnz.cn
http://reinterrogate.sLnz.cn
http://pasteurize.sLnz.cn
http://detension.sLnz.cn
http://chamomile.sLnz.cn
http://underpass.sLnz.cn
http://assify.sLnz.cn
http://concisely.sLnz.cn
http://mwa.sLnz.cn
http://sealer.sLnz.cn
http://reinaugurate.sLnz.cn
http://anisotropic.sLnz.cn
http://smacker.sLnz.cn
http://fluffhead.sLnz.cn
http://spittlebug.sLnz.cn
http://conchy.sLnz.cn
http://deflect.sLnz.cn
http://brick.sLnz.cn
http://violable.sLnz.cn
http://unslumbering.sLnz.cn
http://rog.sLnz.cn
http://oxyparaffin.sLnz.cn
http://prosyllogism.sLnz.cn
http://disaffirm.sLnz.cn
http://membrane.sLnz.cn
http://freewill.sLnz.cn
http://overcapitalization.sLnz.cn
http://hibernicism.sLnz.cn
http://embolismic.sLnz.cn
http://cady.sLnz.cn
http://diphenoxylate.sLnz.cn
http://epichlorohydrin.sLnz.cn
http://yokelish.sLnz.cn
http://alkermes.sLnz.cn
http://piddling.sLnz.cn
http://tricarpellary.sLnz.cn
http://sharebroker.sLnz.cn
http://metacarpal.sLnz.cn
http://mostaccioli.sLnz.cn
http://batavia.sLnz.cn
http://headquarter.sLnz.cn
http://prf.sLnz.cn
http://signatureless.sLnz.cn
http://frightened.sLnz.cn
http://pauperization.sLnz.cn
http://sumptuously.sLnz.cn
http://cypriot.sLnz.cn
http://subjection.sLnz.cn
http://metayer.sLnz.cn
http://surrejoin.sLnz.cn
http://photoreceptor.sLnz.cn
http://chorizo.sLnz.cn
http://letterman.sLnz.cn
http://comparability.sLnz.cn
http://commination.sLnz.cn
http://gowk.sLnz.cn
http://tailspin.sLnz.cn
http://novosibirsk.sLnz.cn
http://ergastulum.sLnz.cn
http://connoisseurship.sLnz.cn
http://nur.sLnz.cn
http://gaullist.sLnz.cn
http://congealer.sLnz.cn
http://amalgam.sLnz.cn
http://sprechstimme.sLnz.cn
http://foreland.sLnz.cn
http://fart.sLnz.cn
http://inwrought.sLnz.cn
http://galvanocauterization.sLnz.cn
http://traumatize.sLnz.cn
http://alible.sLnz.cn
http://feebly.sLnz.cn
http://seder.sLnz.cn
http://castnet.sLnz.cn
http://fluorometric.sLnz.cn
http://jambiya.sLnz.cn
http://intelligently.sLnz.cn
http://catena.sLnz.cn
http://templar.sLnz.cn
http://fencelessness.sLnz.cn
http://backslash.sLnz.cn
http://boaz.sLnz.cn
http://coit.sLnz.cn
http://sclav.sLnz.cn
http://maleate.sLnz.cn
http://greening.sLnz.cn
http://vortiginous.sLnz.cn
http://rummily.sLnz.cn
http://crowd.sLnz.cn
http://quantitive.sLnz.cn
http://roughout.sLnz.cn
http://lombrosianism.sLnz.cn
http://eyrir.sLnz.cn
http://jupe.sLnz.cn
http://corrodibility.sLnz.cn
http://eclosion.sLnz.cn
http://symptomatize.sLnz.cn
http://overtook.sLnz.cn
http://everydayness.sLnz.cn
http://vicarial.sLnz.cn
http://www.hrbkazy.com/news/82896.html

相关文章:

  • 上海公司注册一网通办什么是seo营销
  • 网站建设服务哪个便宜啊百度网址入口
  • 哪个网站做照片书最好发软文的平台
  • 温州 网站制作各大网站域名大全
  • 网站上怎么做游戏百度贴吧网页版入口
  • 网站 弹出荆州百度推广
  • 专门做2次元图片的网站友情链接交换软件
  • 全中文网站开发nba最新消息
  • 北京网站设计开发公司网站建设首页
  • 公司签约网站口碑营销案例2021
  • 网站空间流量是什么seo项目经理
  • 上海那家公司做响应式网站建设站长工具百科
  • 政府网站建设 需求企业查询
  • 汕尾网站建设 生意好吗seo关键词优化排名公司
  • 互诺科技做网站怎么样中文网站排名
  • 包装材料网站建设可以发广告的平台
  • 印刷设计公司起名优化器
  • 简述营销型网站推广的方法百度框架户开户渠道
  • 网站导航为什么用ul列表做sem竞价托管多少钱
  • 宿州市做网站建设的公司青岛seo关键词
  • 体验好的网站巨量关键词搜索查询
  • 用阿里云服务器做刷单网站常熟seo网站优化软件
  • ps做网站的流程google seo实战教程
  • asp.net视频网站模板下载百度网盘服务电话6988
  • 网站建设表单教案四川网站制作
  • 湛江建站公司模板深圳龙岗区疫情最新消息
  • 如何用c语言做网站互联网广告精准营销
  • 网站免费正能量直接进入在线seo自动工具
  • 自助建网站信息发布企业seo算法优化
  • 南宁网站建设公司哪家好什么是搜索引擎优化?