C ++:无法理解编译错误

马迪

我编写了这段示例代码来突出显示相关位。编译代码时:

#include <iostream>

using namespace std;

enum LeaseState {
LEASE_NONE                   = 0x00,
LEASE_READ_CACHING           = 0x01,
LEASE_HANDLE_CACHING         = 0x02,
LEASE_WRITE_CACHING          = 0x04,
LEASE_RH_CACHING             = LEASE_READ_CACHING | LEASE_HANDLE_CACHING,
LEASE_RW_CACHING             = LEASE_READ_CACHING | LEASE_WRITE_CACHING,
LEASE_RWH_CACHING            = LEASE_READ_CACHING | LEASE_WRITE_CACHING |
                               LEASE_HANDLE_CACHING
};

LeaseState
updated_lease_state(LeaseState current, LeaseState new)
{
    return (new | (current ^ new));
}

int main()
{
    cout << "Updated lease state: " << updated_lease_state(LEASE_RW_CACHING, LEASE_READ_CACHING);
    cout << "\n";

    return 0;
}

...这是看到的错误:

$ g++ enum.cc
enum.cc:17: error: expected ‘,’ or ‘...’ before ‘new’
enum.cc: In function ‘LeaseState updated_lease_state(LeaseState, LeaseState)’:
enum.cc:19: error: expected type-specifier before ‘|’ token
enum.cc:19: error: expected type-specifier before ‘)’ token

有人能帮我理解第 17 行有什么问题吗?

谢谢!

呼比

new 是保留关键字!

LeaseState updated_lease_state(LeaseState current, LeaseState newState)
{
     return (newState | (current ^ newState));
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章