如果我在命名空间栏中有一个类Foo:
namespace bar
{
class Foo { ... }
};
Run Code Online (Sandbox Code Playgroud)
那我可以:
using Baz = bar::Foo;
Run Code Online (Sandbox Code Playgroud)
现在就像我在名称空间中使用名称Baz定义类一样.
是否有可能为功能做同样的事情?
namespace bar
{
void f();
}
Run Code Online (Sandbox Code Playgroud)
然后:
using g = bar::f; // error: ‘f’ in namespace ‘bar’ does not name a type
Run Code Online (Sandbox Code Playgroud)
最干净的方法是什么?
解决方案还应该适用于模板功能.
定义:如果某个实体B是A 的别名,那么与源代码中的B替换A的任何或所有用法(当然不是声明或定义)相比,(剥离的)生成的代码保持不变.例如typedef A B
是别名. #define B A
是一个别名(至少). T& B = A
不是别名,B可以有效地实现为间接指针,一个"unaliased"A可以使用"立即语义".