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

对不完整类型的对象取地址,但该对象的完整类型重载了 operator &

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

示例:

struct T;   // Incomplete type

T* foo(T& obj) {
    return &obj;   // Undefined behavior
}

struct T {
    T* operator &();   // Overload
};

在 foo 函数中参数 obj 的类型是不完整的,但其完整类型重载了 operator &,导致未定义的行为。

依据

ISO/IEC 14882:2003 5.3.1(4)-undefined ISO/IEC 14882:2011 5.3.1(5)-undefined

规则

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