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

网站做任务挣钱我有广告位怎么找客户

网站做任务挣钱,我有广告位怎么找客户,免费开源网站建设系统,sql网站源码当编写一个模板特化,涉及部分但不是全部模板参数时,它被称为偏特化(Partial Specialization)。【注意,偏特化是针对类模板而言,函数模板不可偏特化,只能全特化】 偏特化是C模板编程中的一种技术…

当编写一个模板特化,涉及部分但不是全部模板参数时,它被称为偏特化(Partial Specialization)。【注意,偏特化是针对类模板而言,函数模板不可偏特化,只能全特化】
偏特化是C++模板编程中的一种技术,允许为特定类型或特定类型组合的模板参数创建专门的模板定义。这使得可以根据模板参数的特定属性或组合来定制模板的行为,从而提供更灵活和定制化的解决方案。

在偏特化中,可以保留模板参数中的一部分,而将另一部分替换为特定的类型或模式。这使得可以为不同的参数提供不同的实现,以满足特定的需求或条件。

偏特化在处理复杂的模板类型时特别有用,例如嵌套模板或带有多个模板参数的模板。通过偏特化可以根据具体情况对模板进行定制,而无需完全重新实现整个模板。

总的来说,偏特化是C++模板编程中的一项重要技术,允许根据特定的模板参数定制模板的行为,从而提供更灵活和高效的解决方案。

开始偏特化时,使用一个模板头列出没有特化的模板参数,然后定义特化。与完全特化一样,通过列出所有模板参数来命名要特化的类。一些模板参数取决于特化的参数,而另一些则使用特定值。

与完全特化一样,特化的定义完全替换了特定一组模板参数的主模板。按照惯例,保持相同的接口,但实际的实现不要求与原始模板一致。

偏特化示例:

#include <iostream>
#include <vector>/* 1. 原始模板 */
template<class T, class U>
class Rational{
public:// Delegating ConstructorRational(): Rational(0){std::cout << __PRETTY_FUNCTION__ << std::endl;}Rational(T num): numerator_(num), denominator_(1){std::cout << __PRETTY_FUNCTION__ << std::endl;}Rational(T num, U den): numerator_(num), denominator_(den){std::cout << __PRETTY_FUNCTION__ << std::endl;}virtual ~Rational(){std::cout << __PRETTY_FUNCTION__ << std::endl;}T numerator()const{return numerator_;}U denominator()const{return denominator_;}template<class V>V calculate();private:T numerator_;U denominator_;
};template<class T, class U>
template<class V>
V Rational<T,U>::calculate(){return static_cast<V>(numerator_) / static_cast<V>(denominator_);  // omit divided by zero
}/* 2. Partial Specialization,特化U为float */
template<class T>
class Rational<T, float>{
public:// Delegating ConstructorRational(): Rational(0){std::cout << __PRETTY_FUNCTION__ << std::endl;}Rational(T num): numerator_(num), denominator_(1){std::cout << __PRETTY_FUNCTION__ << std::endl;}Rational(T num, T den): numerator_(num), denominator_(den){std::cout << __PRETTY_FUNCTION__ << std::endl;}virtual ~Rational(){std::cout << __PRETTY_FUNCTION__ << std::endl;}T numerator()const{return numerator_;}float denominator()const{return denominator_;}template<class V>V calculate();private:T numerator_;float denominator_;
};template<class T>
template<class V>
V Rational<T,float>::calculate(){return static_cast<V>(numerator_) / static_cast<V>(denominator_);  // omit divided by zero
}/* 3. Partial Specialization,特化T为float */
template<class U>
class Rational<float,U>{
public:// Delegating ConstructorRational(): Rational(0){std::cout << __PRETTY_FUNCTION__ << std::endl;}Rational(float num): numerator_(num), denominator_(1){std::cout << __PRETTY_FUNCTION__ << std::endl;}Rational(float num, U den): numerator_(num), denominator_(den){std::cout << __PRETTY_FUNCTION__ << std::endl;}virtual ~Rational(){std::cout << __PRETTY_FUNCTION__ << std::endl;}float numerator()const{return numerator_;}U denominator()const{return denominator_;}template<class V>V calculate();private:float numerator_;U denominator_;
};template<class U>
template<class V>
V Rational<float,U>::calculate(){return static_cast<V>(numerator_) / static_cast<V>(denominator_);  // omit divided by zero
}int main() {Rational<float,int> r1;Rational<int,float> r2;Rational<int,int> r3;Rational<double,double> r4;//Rational<float,float> r5;  // 此句报错error: ambiguous template instantiation for 'class Rational<float, float>'
}
http://www.yidumall.com/news/69177.html

相关文章:

  • 谁做广东11彩票网站优化设计三年级上册答案
  • 现在个人都在哪个网站做外贸论坛seo网站
  • 网站建立失败的原因是360指数官网
  • 网页游戏排行榜2024晋城网站seo
  • 上海公司章程在哪里下载抖音seo软件工具
  • 关于企业网站建设的请示自己做网站制作流程
  • 专业网站有哪些平台网站 推广
  • 青岛网站建设大全网络搭建是干什么的
  • 网站域名申请什么叫百度竞价推广
  • 哪儿提供邯郸做网站谷歌浏览器手机版官网下载
  • 电子商务网站设计与开发seo点击软件手机
  • 丹东做网站的公司百度搜索优化平台
  • 微信公众号和小程序开发需要涉及深圳搜索引擎优化seo
  • 怎么做海淘网站成都网站推广哪家专业
  • 找人做个app需要多少钱自己做seo网站推广
  • 龙岩网站建设公司企业网络推广计划书
  • 好的高端网站免费的个人网页
  • 个人网站模板素材产品宣传推广方案
  • 网站建站平台源码seo排名哪家有名
  • 电商网站开发步骤网站top排行榜
  • 用php做医药网站开题报告河南seo排名
  • 正确设置网站keywords免费seo课程
  • 济南网站建设行知keji怎么让付费网站免费
  • 广州靠谱网站制作排名哪家强发帖平台
  • 学了lamp做网站就足够了吗厦门seo总部电话
  • 免费做电子书的网站淘大象关键词排名查询
  • ftp如何上传网站长春网站推广排名
  • 做网站团队百度账号注册中心
  • 保定网站建设多少钱网站优化建设
  • 网站怎么做微信支付宝支付网站建立