diff options
Diffstat (limited to 'src/sfnt/SkTypedEnum.h')
-rw-r--r-- | src/sfnt/SkTypedEnum.h | 68 |
1 files changed, 0 insertions, 68 deletions
diff --git a/src/sfnt/SkTypedEnum.h b/src/sfnt/SkTypedEnum.h deleted file mode 100644 index 19d57acf0a..0000000000 --- a/src/sfnt/SkTypedEnum.h +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Copyright 2012 Google Inc. - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -#ifndef SkTypedEnum_DEFINED -#define SkTypedEnum_DEFINED - -#include "SkPreprocessorSeq.h" - -//Compatibility with non-clang compilers. -#ifndef __has_feature - #define __has_feature(x) 0 -#endif -#ifndef __has_extension - #define __has_extension __has_feature -#endif - -//Detect if typed enums are supported. -#if defined(_MSC_VER) - #define SK_TYPED_ENUMS - -#elif defined(__clang__) && __has_extension(cxx_strong_enums) - #define SK_TYPED_ENUMS - -// Scoped enums are buggy in GCC 4.4.0 through 4.5.1. -// See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38064 -// __cplusplus should actually be accurate now. -// See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=1773 -#elif defined(__GNUC__) && (((__GNUC__*10000 + __GNUC_MINOR__*100 + __GNUC_PATCHLEVEL__ >= 40501) && defined(__GXX_EXPERIMENTAL_CXX0X__)) || __cplusplus >= 201103L) - #define SK_TYPED_ENUMS -#endif - -//Define what a typed enum looks like. -#ifdef SK_TYPED_ENUMS - - #define SK_TYPED_ENUM_VALUES(data, elem) \ - SK_PAIR_FIRST(elem) = SK_PAIR_SECOND(elem), - - #define SK_TYPED_ENUM_IDS(data, elem) \ - elem, - - #define SK_TYPED_ENUM_IDS_L(data, elem) \ - elem - - #define SK_TYPED_ENUM(enumName, enumType, enumSeq, idSeq) \ - enum enumName : enumType { \ - SK_SEQ_FOREACH(SK_TYPED_ENUM_VALUES, _, enumSeq) \ - } SK_SEQ_FOREACH_L(SK_TYPED_ENUM_IDS, SK_TYPED_ENUM_IDS_L, _, idSeq); - -#else - - #define SK_TYPED_ENUM_VALUES(enumType, elem) \ - static const enumType SK_PAIR_FIRST(elem) = SK_PAIR_SECOND(elem); - - #define SK_TYPED_ENUM_IDS(enumType, elem) \ - enumType elem; - - #define SK_TYPED_ENUM(enumName, enumType, enumSeq, idSeq) \ - typedef enumType enumName; \ - SK_SEQ_FOREACH(SK_TYPED_ENUM_VALUES, enumType, enumSeq) \ - SK_SEQ_FOREACH(SK_TYPED_ENUM_IDS, enumType, idSeq) - -#endif - -#endif |