括弧で囲みたい。

括弧で囲みたいんだけど、なんかエラーが出る。GCCのバグっぽい。
再現できる最小のコード

struct foo
{
  int operator[](int) const { return 0; }
};

int main()
{
  (foo ()[0]);
  return 0;
}

現在とっている回避法。

int main()
{
  (0,foo ()[0]);  // 現在使っている回避法。
  ((foo ())[0]);  // 別の事情で採用できなかった回避法。
  return 0;
}

後で、GCCの既知のバグか調べて、報告するかどうか決めよう。