jjzjj

MagicVec

全部标签

c++ - 这个 C++ setter/getter 模式破坏了什么?

在C++中使用GLSL语法我编写了自定义vector类,例如vec2、vec3等,它们模仿GLSL类型,大致如下所示:structvec3{inlinevec3(floatx,floaty,floatz):x(x),y(y),z(z){}union{floatx,r,s;};union{floaty,g,t;};union{floatz,b,p;};};vector上的操作是这样实现的:inlinevec3operator+(vec3a,vec3b){returnvec3(a.x+b.x,a.y+b.y,a.z+b.z);}这让我可以创建vector并使用类似GLSL的语法访问它们的组