// { dg-do assemble  }
// { dg-options "" }

class Pooled
{
};

class RefCounted
{
};

class BrickExpressionBase : public RefCounted, public Pooled
{
};

template<unsigned Dim, class LHS, class RHS, class OP>
class BrickExpression : public BrickExpressionBase
{
};

template <unsigned Dim, class T>
void f()
{
  typedef BrickExpression<Dim, T, T, T> ExprT;
  ExprT(3).apply;
}
