Consider the following C++11 program:
#include <stdhdr1>
#include <stdhdr2>
#include <stdhdr3>
using namespace std;
#include <boost1>
#include <boost2>
#include <boost3>
int main()
{
}
Where stdhdrn
is 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?)