MetaProgramming

男に二言は無い的マクロ

最初だけ特別な評価をして,以降は別の評価を繰り返すマクロを考えていた.結果,boost::preprocessorがincludeディレクティブを必要とする理由の本質を何となく悟る.っていうかそんなこと悟ってどーする>俺 // only_once_first_state.hpp #undef ONLY_ONC…

Compile-time Transcendental

む〜. #include <iostream> #include <boost/preprocessor.hpp> inline double sin(double x) // x must be in [-pi/2, pi/2) { #define INIT_N 1 #define TERMINATING_N 12 #define SIN_TAYLOR_TERM(N, K, DUMMY) \ * (1.0 - x * x / (K * (4 * K + 2)) #define CLOSING_PARENTHESIS(N, K, DU</boost/preprocessor.hpp></iostream>…