Injetar namespace experimental em std

É um pacote ruim ou bom injetar espaço para nomestd::experimental para dentrostd gosta de seguir?

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

#include <experimental/optional>

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

Ou mesmo de forma mais moderna:

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

A intenção de introduzirstd::experimental "sub-namespace" é claro porquestd::experimental atualmente contémuma abundância deNovo bibliotecas. Eu acho que é muito provável que todos eles migrem paranamespace std sem alterações substanciais e o código do usuário gravado atualmente pode contar com isso (estou totalmente errado?). Caso contrário, todo esse código deve ser refatorado para mudar destd::experimental:: parastd:: no futuro. Não é grande coisa, mas pode haver razões para não fazê-lo.

A questão é sobre o código de produção e o código não muito sério.

questionAnswers(4)

yourAnswerToTheQuestion