【发布时间】:2018-12-20 20:58:37
【问题描述】:
我发现以下模式在我们公司的代码中相当常用。
struct Foo
{
enum FType
{
TypeA,
TypeB,
Type_MAX
};
};
typedef Foo::FType FooType;
[...]
FooType m_type;
我的问题是,这样做有什么好处? (或者,这避免了什么问题?)为了清楚起见,我想知道他们为什么不...
enum FooType
{
TypeA,
TypeB,
Type_MAX
};
[...]
FooType m_type;
我不能问原来的程序员,因为他们被重新分配了,原来我们公司指定的主题专家实际上是我。
如果有帮助,此代码已在不同时间使用多个版本的 MSVC、gcc 和 clang 编译用于不同的目标平台...所有 C++11 之前的版本。
谁能明白为什么要这样做? 如果答案被证明是微不足道的,请提前道歉。
编辑添加:这是在内部类中使用的。 (当枚举是全局的时,我们的样式指南要求条目以公共前缀开头,以便将它们与其他符号区分开来。)
【问题讨论】:
-
“原来我们公司指定的主题专家,其实就是我”呵呵:)
-
@LightnessRacesinOrbit 我知道那种感觉。有人说你只是一个可能知道的人,在你听完问题后会有一种蜷缩的冲动。或者用头攻击桌子,后悔手头没有锋利的东西。
-
我总是背诵简单的概念“类名也是一个命名空间”。它解决了大部分的理解问题。
-
@Swift-FridayPie:另见:“专家 - 草图”