我有一个模板功能:
namespace Example
{
template<class T>
T Foo() { return T(0); };
}
我想使用using
语句或类似语句,以便在调用它时不必在函数名称前加上它的名称空间,即
template<class T> using Foo = Example::Foo<T>;
然而这不起作用。
我 不 想要使用以下方法,因为它会包含命名空间Example
中的所有内容:
using namespace Example;
是否有一种不错的C ++ 11方法可以为命名空间中的函数创建缩短的别名?
答案 0 :(得分:4)
对于任何符号,您都可以using Example::Foo;
。这可以在命名空间作用域或函数作用域中使用(这实际上存在于C ++ 98中,它在C ++ 11中不是新的)。您尝试执行的方法仅适用于类型,而Foo
是一个函数。