title: No matching generic delegate as lambda parameter in inheritance class
body: <p>I try use delegates in my project, but while coding deeper and deepeer I bump in some strange behavior.</p>
  
  <p>Here maximum simplified code which show my problem:</p>
  
  <pre><code>template&lt;typename T&gt;
  class Slave{
      public:
      typedef void (*F)(T option);
  
      Slave&lt;T&gt;::F f;
  
      Slave(Slave&lt;T&gt;::F *f){
          this-&gt;f = f;
      }
  };
  
  template&lt;typename T&gt;
  class Master {
      public:
      T option;
      Slave&lt;T&gt;* slave;
  
      Master(T option, Slave&lt;T&gt;* slave){
          this-&gt;option = option;
          this-&gt;slave = slave;
      }
      void blink(){
          slave-&gt;f(option);
      }
  };
  
  void loop(){
      Master&lt;int&gt; *m;
      m = new Master&lt;int&gt;(3, new Slave&lt;int&gt;([](int option) -&gt; void {
          //blink option times
      })); // Here error: no matching function for call to 'Slave&lt;int&gt;::Slave(Core::Core()::&lt;lambda(int)&gt;)'
      m-&gt;blink();
  };
  </code></pre>