为了使引用类型更容易,您可以使用 using 子句将单个类型带入当前范围:
namespace MyCompany
{
namespace MyProject
{
class MyType {};
void myFunc(MyType const& obj) {}
}
}
int main()
{
using MyCompany::MyProject::MyType;
using MyCompany::MyProject::myFunc;
MyType plop;
myFunc(plop);
}
问题是该类是否是模板类(或函数)。是否可以在不完全实例化它们的情况下将它们带入当前范围?
namespace MyCompany
{
namespace MyProject
{
template<typename T>
class MyType {};
template<typename T>
void myFunc(MyType<T> const& obj) {}
}
}
int main()
{
// Can I bring the templates into scope?
// Or do I need to fully instantiate each version in the using clause?
using MyCompany::MyProject::MyType; ????
using MyCompany::MyProject::myFunc; ????
MyType plop;
myFunc(plop);
}