support compiling without boost