added guards to avoid macro definition when used with boost_config.hpp