macro を減らしとく
inline function よくわからなすぎるのでやめた