#include "space_age.h" namespace space_age { #define PLANET_TABLE \ X(on_mercury, 0.2408467) \ X(on_venus, 0.61519726) \ X(on_mars, 1.8808158) \ X(on_jupiter, 11.862615) \ X(on_saturn, 29.447498) \ X(on_uranus, 84.016846) \ X(on_neptune, 164.79132) #define X(a, b) \ double space_age:: a () const \ { \ return on_earth() / b; \ } PLANET_TABLE #undef X space_age::space_age(double seconds) : seconds_(seconds) { } double space_age::seconds() const { return seconds_; } double space_age::on_earth() const { return seconds() / 31557600; } }