title: invalid conversion gcc -fpermissive
body: <p>My idea is to check if this dll has the version i need or is it older or newer?
  I'm trying to use a THUNK/Trampoline function.</p>
  
  <p>here is my usage in a different *.dll file.<br></p>
  
  <pre><code>int FilterVersion(CBaseFilter* pFilter)
  {
   //this is line 178
      void* ProgVersion = (CBaseFilter::AbstractProgVersion)(void *)&amp;CBaseFilter::FilterVersionStatic;
      return (*(CBaseFilter::AbstractProgVersion)ProgVersion)(*pFilter);
  }
  </code></pre>
  
  <p>This is the declaration of the class in which i declared the trampoline. </p>
  
  <pre><code>class PROG_CORE_API CBaseFilter
  {
  friend class CProgEngineInternal;
  
  // Trampoline Design pattern
  // this FilterVersion function will be used on a global function exported from a 
  // cpp file exporting the dlls functions (therfore must be: static = global).
  // it will use an arbitrary BaseFilter object - so Pure abstract function will
  // make it possible to use polimorphism to all types of derived classes objects.
  
  public:
  
      typedef int (*AbstractProgVersion)(CBaseFilter&amp;);
  
      virtual int FilterVersionAbs() =0 ; 
  
      // a single spot (static) where all derived implemented filters versions tested. 
      // developer can specify version numbers to prohibit from running
      // returning 0 should block the filter from loading.
  
      static int FilterVersionStatic(CBaseFilter&amp; FilterObj)
      {
          // version is 4 bytes 
          return FilterObj.FilterVersionAbs();
      }
  
      mutable int m_Version;
  
  private:.....
  </code></pre>
  
  <p>The warning i get is:</p>
  
  <pre><code>GCC Build Error in - AddBorders_F.cpp:178:76: error: invalid conversion from ‘CBaseFilter::AbstractProgVersion {aka int (*)(CBaseFilter&amp;)}’ to ‘void*’ [-fpermissive]
  GCC Build Error in - AddBorders_F.o] Error 1
  GCC Build Error in - make: *** [AddBorders] Error 2
  </code></pre>
  
  <p>as far as my search goes i understand i'm missing a casting to but i don't understand why?</p>