Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/151.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C+中的命名枚举+;_C++_Enums - Fatal编程技术网

C++ C+中的命名枚举+;

C++ C+中的命名枚举+;,c++,enums,C++,Enums,我在代码中使用命名枚举,如下所示 namespace Config { enum class SubscribersIpVersion { Dhcpv6, DualStack, DualStackDhcpv6, DualStackSlaac,

我在代码中使用命名枚举,如下所示

namespace Config 
{
    enum class SubscribersIpVersion
    {                              
        Dhcpv6,                    
        DualStack,                 
        DualStackDhcpv6,           
        DualStackSlaac,            
        Ipv4,                      
        Ipv6,                      
        Slaac,                     
    };
};
在我的一个类中,函数返回到IP版本

class xxxx
{
...
public:
SubscribersIpVersion getIpVersion() {return ipVersion;}
private:
SubscribersIpVersion ipVersion;
};
但如果条件失败,则会出现以下情况

if (!isIpv6 && (pSubGroup->getIpVersion() == Config::SubscribersIpVersion::Ipv6 ||          
                     pSubGroup->getIpVersion() == Config::SubscribersIpVersion::Slaac ||         
                     pSubGroup->getIpVersion() == Config::SubscribersIpVersion::Dhcpv6 ||        
                     pSubGroup->getIpVersion() == Config::SubscribersIpVersion::DualStack ||     
                     pSubGroup->getIpVersion() == Config::SubscribersIpVersion::DualStackSlaac ||
                     pSubGroup->getIpVersion() == Config::SubscribersIpVersion::DualStackDhcpv6))
我在gdb找到的原因是

(gdb) pt pSubGroup->getIpVersion()
type = enum Config::SubscribersIpVersion {Config::Dhcpv6, Config::DualStack,
    Config::DualStackDhcpv6, Config::DualStackSlaac, Config::Ipv4, Config::Ipv6,
    Config::Slaac}
(gdb) p pSubGroup->getIpVersion()
$1 = Config::DualStack
如果我比较,这就是gdb中的错误

(gdb) p pSubGroup->getIpVersion() == Config::SubscribersIpVersion::DualStack
`Config::SubscribersIpVersion' is not defined as an aggregate type.

有人能告诉我上面的代码有什么问题吗?

全部:感谢您的支持。我发现代码中有一个逻辑问题。一旦修复,一切正常。

什么是
isIpv6
?展示你的。是的,有什么价值?这对我很有用(我试过了,因为我没有看到你的代码有任何问题)。顺便说一句,比较
不是更容易吗!ipv6&&pSubGroup->getIpVersion()!=配置::订阅IPVersion::Ipv4
?你查过我的链接了吗?那代码对我有用!