… | |
… | |
805 | #define ecb_decltype(x) __decltype(x) |
805 | #define ecb_decltype(x) __decltype(x) |
806 | #elif ECB_GCC_VERSION(3,0) |
806 | #elif ECB_GCC_VERSION(3,0) |
807 | #define ecb_decltype(x) __typeof(x) |
807 | #define ecb_decltype(x) __typeof(x) |
808 | #endif |
808 | #endif |
809 | |
809 | |
|
|
810 | #if _MSC_VER >= 1300 |
|
|
811 | #define ecb_deprecated __declspec(deprecated) |
|
|
812 | #else |
|
|
813 | #define ecb_deprecated ecb_attribute ((__deprecated__)) |
|
|
814 | #endif |
|
|
815 | |
810 | #define ecb_noinline ecb_attribute ((__noinline__)) |
816 | #define ecb_noinline ecb_attribute ((__noinline__)) |
811 | #define ecb_unused ecb_attribute ((__unused__)) |
817 | #define ecb_unused ecb_attribute ((__unused__)) |
812 | #define ecb_const ecb_attribute ((__const__)) |
818 | #define ecb_const ecb_attribute ((__const__)) |
813 | #define ecb_pure ecb_attribute ((__pure__)) |
819 | #define ecb_pure ecb_attribute ((__pure__)) |
814 | |
820 | |
|
|
821 | /* http://msdn.microsoft.com/en-us/library/k6ktzx3s.aspx __declspec(noreturn) */ |
815 | #if ECB_C11 |
822 | #if ECB_C11 |
816 | #define ecb_noreturn _Noreturn |
823 | #define ecb_noreturn _Noreturn |
817 | #else |
824 | #else |
818 | #define ecb_noreturn ecb_attribute ((__noreturn__)) |
825 | #define ecb_noreturn ecb_attribute ((__noreturn__)) |
819 | #endif |
826 | #endif |