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

英迈思做网站怎么样dede单本小说网站源码

英迈思做网站怎么样,dede单本小说网站源码,搜狗网址大全,f3322免费域名申请当编写一个模板特化#xff0c;涉及部分但不是全部模板参数时#xff0c;它被称为偏特化#xff08;Partial Specialization#xff09;。【注意#xff0c;偏特化是针对类模板而言#xff0c;函数模板不可偏特化#xff0c;只能全特化】 偏特化是C模板编程中的一种技术…当编写一个模板特化涉及部分但不是全部模板参数时它被称为偏特化Partial Specialization。【注意偏特化是针对类模板而言函数模板不可偏特化只能全特化】 偏特化是C模板编程中的一种技术允许为特定类型或特定类型组合的模板参数创建专门的模板定义。这使得可以根据模板参数的特定属性或组合来定制模板的行为从而提供更灵活和定制化的解决方案。 在偏特化中可以保留模板参数中的一部分而将另一部分替换为特定的类型或模式。这使得可以为不同的参数提供不同的实现以满足特定的需求或条件。 偏特化在处理复杂的模板类型时特别有用例如嵌套模板或带有多个模板参数的模板。通过偏特化可以根据具体情况对模板进行定制而无需完全重新实现整个模板。 总的来说偏特化是C模板编程中的一项重要技术允许根据特定的模板参数定制模板的行为从而提供更灵活和高效的解决方案。 开始偏特化时使用一个模板头列出没有特化的模板参数然后定义特化。与完全特化一样通过列出所有模板参数来命名要特化的类。一些模板参数取决于特化的参数而另一些则使用特定值。 与完全特化一样特化的定义完全替换了特定一组模板参数的主模板。按照惯例保持相同的接口但实际的实现不要求与原始模板一致。 偏特化示例 #include iostream #include vector/* 1. 原始模板 */ templateclass 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_;}templateclass VV calculate();private:T numerator_;U denominator_; };templateclass T, class U templateclass V V RationalT,U::calculate(){return static_castV(numerator_) / static_castV(denominator_); // omit divided by zero }/* 2. Partial Specialization特化U为float */ templateclass T class RationalT, 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_;}templateclass VV calculate();private:T numerator_;float denominator_; };templateclass T templateclass V V RationalT,float::calculate(){return static_castV(numerator_) / static_castV(denominator_); // omit divided by zero }/* 3. Partial Specialization特化T为float */ templateclass U class Rationalfloat,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_;}templateclass VV calculate();private:float numerator_;U denominator_; };templateclass U templateclass V V Rationalfloat,U::calculate(){return static_castV(numerator_) / static_castV(denominator_); // omit divided by zero }int main() {Rationalfloat,int r1;Rationalint,float r2;Rationalint,int r3;Rationaldouble,double r4;//Rationalfloat,float r5; // 此句报错error: ambiguous template instantiation for class Rationalfloat, float }
http://www.tj-hxxt.cn/news/227588.html

相关文章:

  • 保定网站建设多少钱哪家好Dw做网站怎么加logo
  • 做网站龙华h5页面制作平台
  • 知乎 拒绝 朋友 做网站大型网站制作设计
  • 网站打不开 其它能打开微信群投票网站怎么做
  • 手机建网站 优帮云wordpress design
  • 网站开发结构图深圳市建设工程交易服务中心网站
  • 广告公司管理制度兴安盟seo
  • 人工做流量的网站购物网站最近浏览怎么做
  • 河北高阳做网站的wordpress防止机器评论
  • 怎样做辅导班的网站保定网站建设的过程
  • 花都网站开发公司电脑培训中心
  • 建设企业网站的价格智慧团建网站注册登录入口
  • 沧州商城网站开发设计早教网站模板
  • 网站设计培训班前台公司部门解散 转岗不同意会怎么样
  • 永州网站建设多少钱最近发生的重大新闻事件
  • python 做 网站网页快速收录
  • 海口网站建设联系方式中国电信黄页网
  • 建设企业网站中国建设银行批量替换wordpress页面文字
  • 重庆手机版建站系统信息抖音代运营报价明细表
  • 可以做动态影集的网站响应式网站排名
  • 温州网站建设 温州网站制作东莞营销网站建设服务
  • 做网站需要商标注册吗友链交换网站源码
  • 上海网站开发定制手机膜+东莞网站建设
  • 做网站给源码吗网站开发研究前景
  • 免费网站推广app河北石家庄地图
  • 搭建科技网站价格天津公共资源交易平台官网
  • 网站文字规范网站维护知识
  • 遂昌网站建设人人网
  • 网站域名如何起温州整站推广咨询
  • 建设京东商城网站淄博网站开发