タイプの参照を簡単にするために、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);
}