operator T * () {return v;}
operator T*() {return v;}
这是TriMesh的 Vec.h 文件中的一个运算符重载。 这里的operator不是(), 而是T * ()。 通过下面这个例子来说明其用途:
TriMesh中的Color类继承自Vec<3,float>, 因此也是Vec
Color color = red(); //red() returns the red color glColor3fv(color); //right!
这里传进color后实际上经过了一次运算符重载的调用, 调用的是 operator const T* () const {return v;} .
Vec.h 里面类似的运算符有:
operator const T * () const { return v; } operator const T * () { return v; } operator T * () { return v; }
实际上在XForm.h中也有类似的函数。