Commit a0b720de by Nicolas Capens

Simplify ClFlags macro for older C++ standards.

Visual Studio 2015 does not support the use of typename outside of a template definition. Instead alias the flag's storage type. This even avoids some duplication. BUG=swiftshader:7 Change-Id: I787701f6bfe8e36169e6ac5d63fcb6a1a114bdb0
parent e6983131
...@@ -111,29 +111,24 @@ public: ...@@ -111,29 +111,24 @@ public:
#define X(Name, Type, ClType, ...) \ #define X(Name, Type, ClType, ...) \
private: \ private: \
typename detail::cl_type_traits<Type, cl_detail::ClType>::storage_type Name; \ using Name##StorageType = \
detail::cl_type_traits<Type, cl_detail::ClType>::storage_type; \
\
Name##StorageType Name; \
\ \
template <bool E> \ template <bool E> \
typename std::enable_if<E, void>::type set##Name##Impl( \ typename std::enable_if<E, void>::type set##Name##Impl( \
typename detail::cl_type_traits<Type, cl_detail::ClType>::storage_type \ Name##StorageType Value) { \
Value) { \
Name = std::move(Value); \ Name = std::move(Value); \
} \ } \
\ \
template <bool E> \ template <bool E> \
typename std::enable_if<!E, void>::type set##Name##Impl( \ typename std::enable_if<!E, void>::type set##Name##Impl(Name##StorageType) { \
typename detail::cl_type_traits<Type, \
cl_detail::ClType>::storage_type) {} \
\
public: \
typename detail::cl_type_traits<Type, cl_detail::ClType>::storage_type \
get##Name() const { \
return Name; \
} \ } \
\ \
void set##Name( \ public: \
typename detail::cl_type_traits<Type, cl_detail::ClType>::storage_type \ Name##StorageType get##Name() const { return Name; } \
Value) { \ void set##Name(Name##StorageType Value) { \
/* TODO(jpp): figure out which optional flags are used in minimal, and \ /* TODO(jpp): figure out which optional flags are used in minimal, and \
what are the defaults for them. */ \ what are the defaults for them. */ \
static constexpr bool Enable = \ static constexpr bool Enable = \
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment