gpt4 book ai didi

c++ - 我可以让引用成员不占空间吗?

转载 作者:行者123 更新时间:2023-12-02 09:48:04 24 4
gpt4 key购买 nike

有什么办法可以让引用成员不占空间?
例如:

#include <iostream>
#include <glm/glm.hpp>

struct MyClass : public glm::vec3{
float& rx = x;
float& ry = y;
float& rz = z;
};

int main() {
std::cout << sizeof(glm::vec3) << std::endl;
std::cout << sizeof(MyClass) << std::endl;
}
类(class)规模 glm::vec3是 12,类的大小 MyClass是40。
有什么方法可以在 MyClass 中进行引用不占空间?就好像所有代码都在 ri被使用,它被替换为 i ?
附言如果您好奇我为什么要这样做,我会在类成员上添加自定义属性以进行扫描,但我无法更改 glm 之类的第三方代码,这就是我需要包装器的原因,但如果包装器的大小与起源一,浪费的空间是 Not Acceptable 。

最佳答案

也许这个?

struct MyClass : public glm::vec3{
float& rx() { return x; }
float& ry() { return y; }
float& rz() { return z; }
};
很难从您的问题描述中说是否有可能。

关于c++ - 我可以让引用成员不占空间吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63390271/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com