本文介绍了c ++ typedef另一个类的枚举?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是我的问题:

  struct A 
{
enum A_enum
{
E0,
E1,
E2
};
};

struct B
{
typedef A :: A_enum B_enum;
bool test(B_enum val)
{
return(val == E1); // error:E1undeclared identifier
}
};

我特别不想说 A :: E1 。如果我尝试 B_enum :: E1 ,我收到一个警告,它是非标准。是否有一个很好的方法来做这样的事情?

解决方案

我认为A应该是一个命名空间而不是一个结构。 / p>

So here's my problem:

struct A
{
    enum A_enum
    {
        E0,
        E1,
        E2
    };
};

struct B
{
    typedef A::A_enum B_enum;
    bool test(B_enum val)
    {
        return (val == E1); // error: "E1" undeclared identifier
    }
};

I specifically do not want to say A::E1. If I try B_enum::E1 I receive a warning that it is nonstandard. Is there a good way to do something like this?

解决方案

I reckon that A should be a namespace instead of a struct.

这篇关于c ++ typedef另一个类的枚举?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-11 17:30