微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

枚举只能通过正确的引用传递

如何解决枚举只能通过正确的引用传递

我想请人解释一下为什么枚举只能通过正确的引用而不是简单的引用来传递?

 namespace n1
{
    enum e1
    {
        f = 1,f1
    };
}
void f(n1::e1&& e)
{
    std::cout<<static_cast<int>(e);

}
int main()
{
   f(n1::e1::f1);
    return 0;
}

解决方法

enum是常量,因此不能将其视为n1::e1&,而不能将其视为const n1::e1&

void f(const n1::e1& e) {
    std::cout<<static_cast<int>(e);
}
,

枚举是整数常量

  • 函数的枚举参数必须恒定

备注:您无需强制枚举即可显示其值


void f(const n1::e1& e) {
    std::cout<< e ;
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。