A FIR filter using Modern C++ features
class FIR has nothing private. Should it be struct?

The line
  std::list&lt; T &gt; taps;  // Array of is are shifting each tick

is somewhat contradictory. It taps a list or an array?

I don't see how order is used. Does it need to be a class member at all?

operator()(T x) is very confusing. I would argue that it shall not be an operator at all; if you really want this to be an operator, consider operator&lt;&lt;. A metaphor of shifting into a filter is much more understandable than calling a filter.

// Can we do better here? Yes.