cpp+Rによるマクロの使用法
#がコメントの言語ではみんな同じなんですが。
平方根 <- function(x) { #ifdef DOUBLE sqrt(x) #else floor(sqrt(x)) #endif }
#include "common.R" #define TARGET 2 平方根(TARGET)
cpp main.R | R --vanilla -q
> # 1 "main.R" > # 1 "common.R" 1 > 平方根 <- function(x) + { + + + + floor(sqrt(x)) + + } > > # 1 "main.R" 2 > > > 平方根(2) [1] 1 >
cpp -DDOUBLE main.R | R --vanilla -q
> # 1 "main.R" > # 1 "common.R" 1 > 平方根<- function(x) + { + + sqrt(x) + + + + } > > # 1 "main.R" 2 > > > 平方根(2) [1] 1.414214 >