Don't use the same enum names twice

Prevents

```
[  168s] /home/abuild/rpmbuild/BUILD/reflective-rapidjson-1563638877.5f7c18b/lib/tests/jsonreflector.cpp:41:12: warning: type 'SomeEnumClass' violates the C++ One Definition Rule [-Wodr]
[  168s]    41 | enum class SomeEnumClass {
[  168s]       |            ^
[  168s] /home/abuild/rpmbuild/BUILD/reflective-rapidjson-1563638877.5f7c18b/lib/tests/binaryreflector.cpp:39:12: note: a type with different precision is defined in another translation unit
[  168s]    39 | enum class SomeEnumClass : std::uint16_t {
[  168s]       |            ^
```

observed in LTO-enabled builds
This commit is contained in:
Martchus 2019-08-09 17:48:08 +02:00
parent 8394c145f6
commit f21f255e94
1 changed files with 5 additions and 5 deletions

View File

@ -30,13 +30,13 @@ using namespace ReflectiveRapidJSON;
/// \cond
// define some enums and structs for testing serialization
enum SomeEnum {
enum SomeEnumBinary {
SomeEnumItem1,
SomeEnumItem2,
SomeEnumItem3,
};
enum class SomeEnumClass : std::uint16_t {
enum class SomeEnumClassBinary : std::uint16_t {
Item1,
Item2,
Item3,
@ -54,8 +54,8 @@ struct TestObjectBinary : public BinarySerializable<TestObjectBinary> {
multiset<string> someMultiset;
unordered_set<string> someUnorderedSet;
unordered_multiset<string> someUnorderedMultiset;
SomeEnum someEnum;
SomeEnumClass someEnumClass;
SomeEnumBinary someEnum;
SomeEnumClassBinary someEnumClass;
TimeSpan timeSpan;
DateTime dateTime;
};
@ -224,7 +224,7 @@ void BinaryReflectorTests::setUp()
m_testObj.someSet = { "1", "2", "3", "2" };
m_testObj.someMultiset = { "1", "2", "3", "2" };
m_testObj.someEnum = SomeEnumItem2;
m_testObj.someEnumClass = SomeEnumClass::Item3;
m_testObj.someEnumClass = SomeEnumClassBinary::Item3;
m_testObj.timeSpan = TimeSpan(0xABCD);
m_testObj.dateTime = DateTime(0xEFAB);
m_nestedTestObj.name = "struct with nesting";