title: C++11 binding std function to a overloaded static method
body: <p>this question seems a little bit silly to me but I can't find any similar question so sorry if it's trivial</p>
  
  <p>let's say we have a struct:</p>
  
  <pre><code>struct C {
    static void f(int i) { std::cerr &lt;&lt;  (i + 15) &lt;&lt; "\n"; }
    static void f(std::string s) { std::cerr &lt;&lt;  (s + "15") &lt;&lt; "\n"; }
  };
  </code></pre>
  
  <p>now somewhere else:</p>
  
  <pre><code>std::function&lt;void(int)&gt; f1 = C::f; // this does not compile
  void (*f2)(std::string s) = C::f;   // this compiles just fine
  </code></pre>
  
  <p>the error I'm getting is </p>
  
  <blockquote>
    <p>error: conversion from ‘’ to
    non-scalar type ‘std::function’ requested</p>
  </blockquote>
  
  <p>is there any way to use std::function in such context? what am I missing?</p>
  
  <p>thanks</p>