We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 48d25b4 commit 65027a5Copy full SHA for 65027a5
include/flags/allow_flags.hpp
@@ -7,18 +7,16 @@
7
8
namespace flags {
9
10
-
11
-template <class E, class Enabler = void> struct is_flags
12
-: public std::false_type {};
13
+ template <typename T, typename = void>
+ struct is_flags : std:false_type {};
+ template <typename T>
+ struct is_flags < T, decltype(enableEnumFlags(T{})) > : std::true_type {};
14
15
} // namespace flags
16
17
18
-#define ALLOW_FLAGS_FOR_ENUM(name) \
19
-namespace flags { \
20
-template <> struct is_flags< name > : std::true_type {}; \
21
-}
+#define ALLOW_FLAGS_FOR_ENUM(Name) inline void enableEnumFlags(Name) {}
+#define ALLOW_FLAGS_FOR_ENUM_IN_CLASS(Name) friend inline void enableEnumFlags(Name) {}
22
23
24
#endif // ENUM_CLASS_ALLOW_FLAGS_HPP
0 commit comments