title: error C2064: term does not evaluate to a function taking 0 arguments
body: <p>everyone!
  I maintain a group of channel data in a map container, from which an individual channel data can be accessed by its channle name. With regards to this, I write a simple function <code>GetIRChannelData</code> (please see the following code). When compliing, the statement <code>pusIRChannelData = cit-&gt;second();</code> throwed an error, which read </p>
  
  <pre><code>error C2064: term does not evaluate to a function taking 0 arguments
  </code></pre>
  
  <p>All the function to do is nothing but to search for a given channel name/ID in the map container, and assign it data pointer to a temporal pointer if found. Would you please show me what's wrong?</p>
  
  <pre><code>const Array2D&lt;unsigned short&gt;* GetIRChannelData(std::string sChannelName) const
  {   
      const Array2D&lt;unsigned short&gt;* pusIRChannelData = NULL;
  
      for (std::map&lt;std::string, Array2D&lt;unsigned short&gt;* &gt;::const_iterator cit =    m_usIRDataPool.begin(); cit != m_usIRDataPool.end(); ++cit) 
      {   
          std::string sKey = cit-&gt;first; 
  
          if (sKey == sChannelName)
          {   
             pusIRChannelData = cit-&gt;second(); // Error occurred on this line
             break;
          }
      }
  
      return pusIRChannelData;
  }
  </code></pre>