メンバ変数のアドレスの取得と呼び出し
#include <iostream> #include <assert.h> struct vec_t{ float x, y, z; }; int main(){ float vec_t::*x_member = &vec_t::x; vec_t vec; // 同じ場所をさしている assert(&(vec.x) == &(vec.*x_member)); vec.*x_member = 10; std::cout << vec.x << std::endl; return 0; }
[出力]
10
うぉおお……こんな使い方が出来たんだ…。
いろんな悪さができそうだぜ!