logo
  • 教程列表
  • SO官方文档
  • 未定义的行为
    • 通过空指针读取或写入
    • 使用未初始化的局部变量
    • 访问越界索引
    • 通过指向没有虚拟析构函数的基类的指针删除派生对象
    • 扩展 std 或 posix 命名空间
    • 对于具有非 void 返回类型的函数,没有 return 语句
    • 整数除以零
    • 访问悬空参考
    • 无效的指针算术
    • 签名整数溢出
    • 内存分配和释放配对不正确
    • 由无效的职位数量转移
    • 多个不相同的定义(一个定义规则)
    • 修改 const 对象
    • 修改字符串文字
    • 将对象作为错误类型访问
    • 转换为浮点类型或从浮点类型转换时溢出
    • 从 noreturn 函数返回
    • 无限模板递归
    • 浮点溢出
    • 从构造函数或析构函数调用(纯)虚拟成员
    • 无效的基于派生的静态强制转换
    • 通过不匹配的函数指针类型调用函数
    • 通过指向成员的指针访问不存在的成员
    • 指向成员的指针的派生到基础转换无效
    • 销毁已经被破坏的物体
  1. StackOverflow 文档
  2. C++ 教程
  3. 未定义的行为
  4. 无限模板递归

无限模板递归

Created: November-22, 2018

标准示例,[temp.inst] / 17:

template<class T> class X {
    X<T>* p; // OK
    X<T*> a; // implicit generation of X<T> requires
             // the implicit instantiation of X<T*> which requires
             // the implicit instantiation of X<T**> which ...
};
  • 浮点溢出
  • 从 noreturn 函数返回

Copyright © 2018. All right reserved

tastones.com 备案号:鲁ICP备18045372号-1

  • 关于我们
  • 免责声明