2017-09-26 9 views
3

を適用することができない私は、Visual Studio 2017でC++ 17 [[fallthrough]]属性を使用しようとしている:属性は、 'フォールスルー' は、この文脈で

Qt::ItemFlags flags = Qt::ItemIsSelectable; 

switch (index.column()) 
{ 
case 0: 
    flags |= Qt::ItemIsUserCheckable; 
    break; 
case 2: 
    [[fallthrough]] 
case 3: 
    [[fallthrough]] 
case 4: 
    flags |= Qt::ItemIsEditable; 
    break; 
} 
return flags; 

を私はコンパイラエラーを取得:

attribute 'fallthrough' cannot be applied in this context

これは、あなたが使用できる唯一のコンテキストのようです[[fallthrough]] ...私は間違って何をしていますか?

答えて

5

[[fallthrough]]属性をセミコロンで終わらせる必要があるため、この暗黙のエラーが発生します。ケースステートメントを

case 2: 
    [[fallthrough]]; 
case 3: 
    [[fallthrough]]; 
// ... 

と書き換えます。

+4

追加するには、クラス、関数、ステートメントなどの属性を* something *にアタッチする必要があります。セミコロンでは、nullステートメントに適用できます。 – chris

関連する問題