Inject Namespace experimentell zu std

Ist es schlecht oder gut, Namensraum zu injizierenstd::experimentalinstd wie folgt?

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

#include <experimental/optional>

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

der noch moderner:

#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;
}

Die Absicht, @ einzuführstd::experimental "Sub-Namespace" ist klar, weilstd::experimental enthält derzeiteine Menge vonNe Bibliotheken. Ich denke, es ist sehr wahrscheinlich, dass alle nach @ migrieren werdenamespace std ohne wesentliche Änderungen und aktuell geschriebenen Benutzercode kann man sich darauf verlassen (irre ich mich total?). Andernfalls sollte der gesamte Code überarbeitet werden, um ihn von @ zu änderstd::experimental:: zustd:: in der Zukunft. Es ist keine große Sache, aber es kann Gründe geben, dies nicht zu tun.

Die Frage bezieht sich sowohl auf Produktionscode als auch auf nicht allzu ernsthaften Code.