Hi, An attribute '__attribute__((deprecated))' can be used in a function declaration to indicate the function is deprecated. I found some compiling issues as below and need your answers. 1. __declspec (deprecated) not supported in gcc 4.5.3. Perhaps also not supported by later releases. __declspec (deprecated) is used by VS on windows, __attribute__((deprecated)) is the equivalent in gcc. While __declspec is the keyword in C/C++ standard, it seems the form of '__declspec (deprecated)' is more standard? Will gcc also support '__declspec (deprecated)' syntax in the future? 2. Cannot compile in some cases, can in similar cases The error reads, 'error: attributes are not allowed on a function-definition'. Same to both normal member funtions and construcotr. class A { public: void func(int a , int b); }; void A::func(int a, int b) __attribute__((deprecated)) { } Though I know __attribute__((deprecated)) should be used in function declaration other than definition, but following can compile and warning displays during compiling, class A { public: void func(int a , int b); }; __attribute__((deprecated)) void A::func(int a, int b) { } 3. Used before non-inline constructor, can compile while no deprecated warning. class A { public: A(int i); }; __attribute__((deprecated)) void A::A(int i) { } At least gcc should report '__attribute__((deprecated)) will not take effect' in this case. Thanks and Best Regards, Xmly