Generally, the difference between ::any_name and any_name should be clear. If preceded by :: the name is always and only looked up in the global namespace.
I was wondering however whether there is an technical(*) difference, given a namespace that I already know to be toplevel (i.e. directly below the global namespace) and where I know that there is no second (nested) namespace (or any name) of the same name.
For example, is there any difference between using ::std::string vs. std::string?
(*) Readability, style and maintenance issues aside.