在查看Dear Imgui的代码时,我发现了以下代码(为了相关性进行了编辑):
struct ImVec2
{
float x, y;
float& operator[] (size_t idx) { return (&x)[idx]; }
};
Run Code Online (Sandbox Code Playgroud)
很明显,这在实践中是有效的,但是从 C++ 标准的角度来看,这段代码合法吗?如果没有,任何主要编译器(G++、MSVC、Clang)是否提供任何显式或隐式保证该代码将按预期工作?