Hello,
I have a question regarding the declaration of function pointers with
stdcall calling convention.
This compiles for me (using g++ -c test.cpp -o test.o):
typedef struct _a {
int (__stdcall *a)();
} a;
While this does not:
typedef struct _t {
} t;
typedef struct _a {
t (__stdcall *a)();
} a;
It gives me the following error:
test.cpp:6:15: error: expected identifier before '*' token
test.cpp:6:16: warning: '__stdcall__' attribute only applies to function
types [-Wattributes]
test.cpp:6:19: error: ISO C++ forbids declaration of 't' with no type
[-fpermissive]
test.cpp:6:19: error: 't' declared as function returning a function
Am I using __stdcall incorrectly? If so, why does it work for primitive
return types. If I am using it correctly,
should I file this as a bug against gcc?
I am using: gcc version 4.7.2 (Built by MinGW-builds project)
Regards,
Sebastian