title: Vector of std::function with different signatures
body: <p>I have a number of callback functions with different signatures. Ideally, I would like to put these in a vector and call the appropriate one depending on certain conditions.</p>
  
  <p>e.g.</p>
  
  <pre><code>void func1(const std::string&amp; value);
  
  void func2(const std::string&amp; value, int min, int max);
  
  const std::vector&lt;std::function&lt;void(std::string)&gt;&gt; functions
  {
      func1,
      func2,
  };
  </code></pre>
  
  <p>I realise the above isn't possible, but I wonder if there are any alternatives I should consider. I haven't been able to find any yet, and I've experimented with <code>std::bind</code> but not managed to achieve what I want.</p>
  
  <p>Is such a thing possible?</p>