title: C++ templates and inheritance
body: <p>My C++ framework has Buttons. A Button derives from Control. So a function accepting a Control can take a Button as its argument. So far so good.</p>
  
  <p>I also have List<code>&lt;</code>T>. However, List<code>&lt;</code>Button> doesn't derive from List<code>&lt;</code>Control>, which means a function accepting a list of Controls can't take a list of Buttons as its argument. This is unfortunate.</p>
  
  <p>Maybe this is a stupid question, but I don't see how can I solve this :( List<code>&lt;</code>Button<code>&gt;</code> should derive from List<code>&lt;</code>Control<code>&gt;</code>, but I don't see a way to make this happen "automatically".</p>