Consider the following C++11 program:
 #include <stdhdr1>
 #include <stdhdr2>
 #include <stdhdr3>
 using namespace std;
 #include <boost1>
 #include <boost2>
 #include <boost3>
 int main()
 {
 }
Where stdhdrnis a standard library header, and boostn is a boost header.
Is there ever a situation where this won't compile?
Furthermore given some additional user code in main, is there ever an ambiguity (or other error) caused by opening the std namespace that cannot be resolved by explicitly qualifying the ambiguous (or erroneous) entity?
(For example because of ADL considering the open std namespace or otherwise?)
(Put another way, can boost handle being included after an open std namespace?)
 
    