Yes, it is safe. The using declarations only add the boost functions to the detail namespace. You basically answered your own question :-)
Edit: One more thought: Even if somebody were to use your detail namespace and the boost namespace at the same time, for_each
etc. would still refer to the same function, so that the alias would not be a problem.
If the names then collide with other libraries providing a for_each
, you could still disambiguate the usage of the function by prefixing the namespace. But if nobody is using
your namespace, you are fine.