メンバ変数のアドレスの取得と呼び出し

#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


うぉおお……こんな使い方が出来たんだ…。
いろんな悪さができそうだぜ!