在函数定义中定义的C ++名称空间别名是否具有块,函数,文件或其他作用域(有效期)?
答案 0 :(得分:20)
这是一段有效期。例如,如果您定义如下的命名空间别名,则命名空间别名abc在{...}块之外将无效。
{
namespace abc = xyz;
abc::test t; //valid
}
abc::test t; //invalid
答案 1 :(得分:1)
范围是定义别名的声明性区域。
答案 2 :(得分:0)
它将具有定义它的块的范围 - 可能与函数作用域相同,除非您在函数内的块中声明别名。
答案 3 :(得分:0)
我非常确定命名空间别名只在其创建的块中具有范围,就像大多数其他种类的标识符一样。我目前无法确定,但this page似乎并不反对。
答案 4 :(得分:0)
据我所知,这是在宣布的范围内。因此,如果您在方法中使用别名,那么它在该方法中有效,但在另一种方法中无效。
答案 5 :(得分:0)
答案 6 :(得分:0)
它在引入范围的持续时间内有效。
看看http://en.cppreference.com/w/cpp/language/namespace_alias,我相信cppreference的解释,它更标准。