… | |
… | |
322 | #define ecb_decltype(x) __decltype(x) |
322 | #define ecb_decltype(x) __decltype(x) |
323 | #elif ECB_GCC_VERSION(3,0) |
323 | #elif ECB_GCC_VERSION(3,0) |
324 | #define ecb_decltype(x) __typeof(x) |
324 | #define ecb_decltype(x) __typeof(x) |
325 | #endif |
325 | #endif |
326 | |
326 | |
|
|
327 | #if _MSC_VER >= 1300 |
|
|
328 | #define ecb_deprecated __declspec(deprecated) |
|
|
329 | #else |
|
|
330 | #define ecb_deprecated ecb_attribute ((__deprecated__)) |
|
|
331 | #endif |
|
|
332 | |
327 | #define ecb_noinline ecb_attribute ((__noinline__)) |
333 | #define ecb_noinline ecb_attribute ((__noinline__)) |
328 | #define ecb_unused ecb_attribute ((__unused__)) |
334 | #define ecb_unused ecb_attribute ((__unused__)) |
329 | #define ecb_const ecb_attribute ((__const__)) |
335 | #define ecb_const ecb_attribute ((__const__)) |
330 | #define ecb_pure ecb_attribute ((__pure__)) |
336 | #define ecb_pure ecb_attribute ((__pure__)) |
331 | |
337 | |
|
|
338 | /* http://msdn.microsoft.com/en-us/library/k6ktzx3s.aspx __declspec(noreturn) */ |
332 | #if ECB_C11 |
339 | #if ECB_C11 |
333 | #define ecb_noreturn _Noreturn |
340 | #define ecb_noreturn _Noreturn |
334 | #else |
341 | #else |
335 | #define ecb_noreturn ecb_attribute ((__noreturn__)) |
342 | #define ecb_noreturn ecb_attribute ((__noreturn__)) |
336 | #endif |
343 | #endif |