Технически вы должны иметь возможность импортировать их в некоторое внутреннее пространство имен, а затем сделать вещи, объявленные в этом, видимыми в пространстве имен, предназначенном для пользователя.
#ifndef HEADER_HPP
#define HEADER_HPP
#include <string>
namespace my_detail
{
using std::string;
inline string concatenate(const string& a, const string& b) { return a + b; }
}
namespace my_namespace
{
using my_detail::concatenate;
}
#endif
#include <iostream>
#include "header.hpp"
using namespace my_namespace;
int main()
{
std:: //required
string a("Hello "), b("world!");
std::cout << concatenate(a, b) << '\n';
}
Не уверен, стоит ли эта проблема и насколько хорошо она играет с "аргументно-зависимым поиском".