title: I don't understand this error on map insert
body: <pre><code>//Menu.h
  
  #include&lt;iostream&gt;
  #include&lt;conio.h&gt;
  #include &lt;map&gt;
  #include &lt;string&gt;
  #include &lt;functional&gt;
  #include &lt;utility&gt;
  
  using namespace std;
  map&lt;string,function&lt; void() &gt; &gt; mapa;
  string names[100];
  string functions[100];
  char keys[100];
  int pos=0;
  
  void menu(string name,char key,string functionc)
  {
      names[pos]=name;
      keys[pos]=key;
      functions[pos]=functionc;
      mapa.insert(map&lt;string,function&lt; void()&gt; &gt;::value_type(functionc,functionc));
      pos++;
  }
  
  void write()
  {
      for(int i=0;i&lt;pos;i++)
      {
          cout&lt;&lt;names[pos]&lt;&lt;" ";
          cout&lt;&lt;endl;
      }
  }
  </code></pre>
  
  <blockquote>
    <p>ERROR: Error  1   error C2064: term does not evaluate to a function
    taking 0 arguments</p>
  </blockquote>
  
  <pre><code>//Main.cpp
      #include &lt;iostream&gt;
      #include &lt;map&gt;
      #include &lt;string&gt;
  
      #include"Menu.h"
      using namespace std;
  
      void ime()
      {
      cout&lt;&lt;"k";
      }
  
      int main() {
      menu("ime1",'c',"ime");
      pisi();
  
      system("PAUSE");
        return 0;
      }   
  </code></pre>
  
  <p>I want to make the header generic so the user can make a menu.
  it will cout its name and which char is needed to be pressed to access it's function
  the user will make it's own function then from the header it needs to use it....</p>