データとかの分離とかのアルゴリズムとかの
alias template で以下のように書く方がステキでした。
template getDX(alias A) { static if (is (typeof(A()))) alias typeof(A()) rettype; else alias typeof(A) rettype; rettype getMemberDX() { return A; } } class Meteorite{ float x; float y; float dx; float dy; mixin getDX!(dx); } class SpaceShip{ float x; float y; int dx_; int dy_; int idou_kyori_x() { return dx_; } mixin getDX!(idou_kyori_x); } int main() { Meteorite m = new Meteorite(); SpaceShip s = new SpaceShip(); m.dx = 1; s.dx_ = 2; printf("%f %d\n", m.getMemberDX(), s.getMemberDX()); return 0; }