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

C++11新特性之连续右尖括号(>>)改进

1.介绍

        在C++11之前的泛型编程中,模版实例化有个很繁琐的地方,那就是连续右尖括号(>>)会被编译器解释为右移操作符,而不是模版参数表的结束。

        例如:

template <typename T>
struct Fun
{
      typedef T type;
};

template <typename T>
class A
{
    ...
};

int main(void)
{
    Fun<A<int>>::type xx;  //编译出错
    return 0;
}

        这种嵌套模版在编译过程中会出现错误,因为不支持Fun<A<int>>这种写法,需要改为Fun<A<int>  >(两个右尖括号中间用一个空格分开,非常不方便)。

        这种限制给程序编写造成不便,因此在C++11后就对这种连续右尖括号进行了改进,对模版的这种连续右尖括号进行单独处理。从而能正确分辨出是右移操作符还是模版参数表的结束标记,简化人们的使用。

2.总结

优点:

        (1)简化了嵌套模版的使用

        (2)提高了代码可读性和开发效率。

注意事项:

        旧版本可能不支持,因此最好选择C++11标准以上的编译器。


http://www.kler.cn/a/521597.html

相关文章:

  • arm-linux-gnueabihf安装
  • 用 Scoop 优雅管理 Windows 软件:安装、配置与使用全指南
  • HTML 标题
  • 抠图神器,全离线使用,支持win和mac
  • 论文阅读(二):理解概率图模型的两个要点:关于推理和学习的知识
  • Excel - Binary和Text两种Compare方法
  • AUTOSAR
  • 电路研究9.2——合宙Air780EP使用AT指令
  • 关于ARM和汇编语言
  • Ansible入门学习之Playbook快速入门
  • 嵌入式音视频开发——视频篇(二)
  • 多线程编程杂谈( 下)
  • 力扣25.k个一组翻转链表
  • 特朗普政府将开展新网络攻击
  • Java方法重载(Overloading)与方法重写(Overriding)的区别
  • C++的类Class
  • RocketMQ原理—5.高可用+高并发+高性能架构
  • 第05章 12 可视化热量流线图一例
  • c++面试:类定义为什么可以放到头文件中
  • 大数据治理实战指南:数据质量、合规与治理架构
  • ESP32-CAM实验集(WebServer)
  • 50. TCP报文段
  • Redis存储④Redis五大数据类型之String和Hash
  • 基于springboot+vue的流浪动物救助系统的设计与实现
  • Java 大视界 -- Java 大数据在生物信息学中的应用与挑战(67)
  • 【Postman接口测试】Postman的安装和使用