我发现了一段使用以下语句的代码:
using flags = std::ios_base::fmtflags;
flags fl = std::ios_base::dec;
这是我第一次遇到它。如何将名称空间用作类型。
答案 0 :(得分:5)
您似乎将type aliasing与using
declerations混为一谈。类型别名的行为类似于typedef
,它为现有类型定义了另一个名称。
您的示例等同于以下内容:
typedef std::ios_base::fmtflags flags;
flags fl = std::ios_base::dec;
答案 1 :(得分:3)
在此代码段中,没有人使用命名空间作为类型。 std::ios_base::fmtflags
是一个类型,而不是命名空间,而这个using flags = std::ios_base::fmtflags;
行只是为它引入了一个别名。