Is it bad or good parctice to inject namespace `std::experimental` into `std` like following?

```
namespace std
{
namespace experimental
{
}
using namespace experimental;    
}

#include <experimental/optional>

int main()
{
    std::optional< int > o;
    return 0;
}

```

Or even in more modern form:

```
#if __has_include(<optional>)
# include <optional>
#elif __has_include(<experimental/optional>)
# include <experimental/optional>
namespace std
{
using namespace experimental;    
}
#else
#error !
#endif

int main()
{
    std::optional< int > o;
    return 0;
}

```

The intention to introduce `std::experimental` "sub-namespace" is clear because `std::experimental` currently contains [a plenty of **new** libraries](http://en.cppreference.com/w/cpp/experimental). I think it is very likely all them will migrate into `namespace std` without any substantial changes and user code written currently can rely upon this (am I totally wrong?). Otherwise all this code should be refactored to change from `std::experimental::` to `std::` in the future. It is not big deal, but there may be reasons not to do so.

The question is about both production code and not-too-serious code.