vim-jp/cpp-vim — pull request #22 by rhysd (2014-05-16 05:31:07+00:00)
Title: Fix highlight on unnamed class, struct and enum

C++ では，特定のクラスから継承して匿名クラスを定義することができます．また，`enum` に underlying type を指定することができます．
これらの構文がラベルの構文に似ており，シンタックスハイライトはラベル部分のみのマッチで行われてしまうので誤ってラベルとしてハイライトされてしまっていました．

```cpp
struct base{};

int main()
{
//
// Below 'enum', 'struct' and 'class' are highlighted as label
//

// Specify int as enum's underlying
enum : int {} aaa;

// unnamed derived struct
struct : base {} bbb;

// unnamed derived class
class : base {} ccc;

return 0;
}
```

解決策として，ラベルが `struct`, `class`, `enum` でないかをチェックするようにしました．