title: Issue in passing argument to std::function for vector of functions
body: <p>I'm trying to create a vector of std::function and then pass that vector to a function. I also need to pass arguments to the function objects, so I'm using std::bind. Here is the code:</p>
  
  <pre><code>#include &lt;functional&gt;
  #include &lt;iostream&gt;
  #include &lt;string&gt;
  #include &lt;vector&gt;
  
  using namespace std;
  
  void execute(vector&lt;function&lt;void (int)&gt;&gt;&amp; fs) {
      for (auto&amp; f : fs) 
          f();
  }
  
  void func(int k) {
      cout &lt;&lt; "In func " &lt;&lt; k &lt;&lt; endl;
  }
  
  int main()
  {
      int i = 1;
      vector&lt;function&lt;void (int)&gt;&gt; x;
      auto f1 = bind(func, i);
      //f1(); // this does call intended function
      x.push_back(f1);
  
      execute(x);
  }
  </code></pre>
  
  <p>but this gives following error:</p>
  
  <pre>
  function_tmpl.cpp: In function ‘void execute(std::vector >&)’:
  function_tmpl.cpp:14:5: error: no match for call to ‘(std::function) ()’
     f();
       ^
  In file included from function_tmpl.cpp:1:0:
  /usr/lib/gcc/x86_64-pc-cygwin/4.9.2/include/c++/functional:2142:11: note: candidate is:
       class function
             ^
  /usr/lib/gcc/x86_64-pc-cygwin/4.9.2/include/c++/functional:2434:5: note: _Res std::function::operator()(_ArgTypes ...) const [with _Res = void; _ArgTypes = {int}]
       function::
       ^
  /usr/lib/gcc/x86_64-pc-cygwin/4.9.2/include/c++/functional:2434:5: note:   candidate expects 1 argument, 0 provided
  </pre>
  
  <p>If I call f() inside main(), that works fine, which means that the function has bound with the arguments, but it's not working when passed to another function as argument</p>