i'm guessing this is a C/C++ parsing limitation of SWIG, but, just to be sure, i'll ask the masters.  if i have the following function:
 
void [modifier] foo( );
 
where [modifier] is __stdcall or APIENTRY or WINAPI (yes, i'm in Windows here, and essentially mapping function pointers to OpenGL extension functions), and i have the following function pointer typedef:
 
typedef void ([modifier] * FOO_FUNC_PTR) ( );
 
when i SWIG it, SWIG reports a C/C++ syntax error.  it doesn't like the [modifier] in the typedef.  so, parsing limitation?  and, if so, are there plans to handle it in future versions?  i'm guessing no, since it's a pretty uncommon typedef...
 
now, for anyone suffering from a similar problem, here's the workaround i'm using (it assumes that you're able to alter the code your swigging a little, which is something i've been able to avoid up until now).  basically, in my case, [modifier] is APIENTRY, and i stick the following #undef directive right before my function pointer typedefs:
 
#ifdef _SWIG
#undef APIENTRY
#define APIENTRY
#endif
 
in my C++ project file, _SWIG is *not* defined (i.e. it builds the C++ stuff with APIENTRY set).  in my SWIG command line compilation statement, _SWIG *is* set (-D_SWIG switch).  so, APIENTRY is reset (blank), and SWIG chugs along merrily since it's not in the typedef as far as it's concerned.  seems to work.  i welcome any improvements any one can suggest since i really hated having any concept of SWIG in what i'm swigging, and i like to minimize my preprocessor directives.  i do, however, like saying swig.  swig swig swig.  swig on.
 
swig.