☰
  • 首页
  • 规则分类
  • 项目介绍
search
•••

通过 glvalue 引用不相关类型的对象或未初始化的对象

C++-Undefined-Behavior-24
目录 › next › previous

glvalue 的类型与其引用的对象类型不同且没有继承关系,或引用的对象未初始化,会导致未定义的行为。

示例:

struct A { int i; };
struct B { int i; };

int foo(A& a) {
    return ((B&)a).i;   // Undefined behavior, unrelated type conversion
}

int foo() {
    int i;
    return i;   // Undefined behavior, ‘i’ is not initialized
}

依据

ISO/IEC 14882:2003 4.1(1)-undefined ISO/IEC 14882:2011 4.1(1)-undefined

规则

ID_castNoInheritance ID_localInitialization
Copyright©2024 360 Security Technology Inc., Licensed under the Apache-2.0 license.