Skip to content

Commit 3e74439

Browse files
committed
Common: remove ugly fix for object_loader and object_saver
1 parent 1ea157e commit 3e74439

File tree

2 files changed

+10
-47
lines changed

2 files changed

+10
-47
lines changed

src/Common/object_loader.h

Lines changed: 9 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -18,23 +18,14 @@ struct CLoader
1818
struct CHelper1
1919
{
2020
template <bool a>
21-
#if defined(WINDOWS)
22-
static void load_data(T& data, M& stream, const P& /*p*/)
23-
#elif defined(LINUX)
24-
static void load_data(std::enable_if_t<a, T&> data, M& stream, const P& /*p*/)
25-
#endif
21+
static void load_data(std::enable_if_t<!a, T&> data, M& stream, const P& /*p*/)
2622
{
2723
static_assert(!std::is_polymorphic<T>::value, "Cannot load polymorphic classes as binary data.");
2824
stream.r(&data, sizeof(T));
2925
}
3026

31-
#if defined(WINDOWS)
32-
template <>
33-
static void load_data<true>(T& data, M& stream, const P& /*p*/)
34-
#elif defined(LINUX)
3527
template <bool a>
36-
static void load_data(std::enable_if_t<!a, T&> data, M& stream, const P& /*p*/)
37-
#endif
28+
static void load_data(std::enable_if_t<a, T&> data, M& stream, const P& /*p*/)
3829
{
3930
T* data1 = const_cast<T*>(&data);
4031
data1->load(stream);
@@ -45,22 +36,13 @@ struct CLoader
4536
struct CHelper
4637
{
4738
template <bool pointer>
48-
#if defined(WINDOWS)
49-
static void load_data(T& data, M& stream, const P& p)
50-
#elif defined(LINUX)
51-
static void load_data(std::enable_if_t<pointer, T&> data, M& stream, const P& p)
52-
#endif
39+
static void load_data(std::enable_if_t<!pointer, T&> data, M& stream, const P& p)
5340
{
5441
CHelper1<T>::load_data<object_type_traits::is_base_and_derived<ISerializable, T>::value>(data, stream, p);
5542
}
5643

57-
#if defined(WINDOWS)
58-
template <>
59-
static void load_data<true>(T& data, M& stream, const P& p)
60-
#elif defined(LINUX)
6144
template <bool pointer>
62-
static void load_data(std::enable_if_t<!pointer, T&> data, M& stream, const P& p)
63-
#endif
45+
static void load_data(std::enable_if_t<pointer, T&> data, M& stream, const P& p)
6446
{
6547
CLoader<M, P>::load_data(*(data = new typename object_type_traits::remove_pointer<T>::type()), stream, p);
6648
}
@@ -94,24 +76,14 @@ struct CLoader
9476
template <typename T1, typename T2>
9577
struct add_helper
9678
{
97-
#if defined(WINDOWS)
98-
template <bool>
99-
static void add(T1& data, T2& value)
100-
#elif defined(LINUX)
10179
template <bool a>
102-
static void add(std::enable_if_t<a, T1&> data, T2& value)
103-
#endif
80+
static void add(std::enable_if_t<!a, T1&> data, T2& value)
10481
{
10582
data.push_back(value);
10683
}
10784

108-
#if defined(WINDOWS)
109-
template <>
110-
static void add<true>(T1& data, T2& value)
111-
#elif defined(LINUX)
11285
template <bool a>
113-
static void add(std::enable_if_t<!a, T1&> data, T2& value)
114-
#endif
86+
static void add(std::enable_if_t<a, T1&> data, T2& value)
11587
{
11688
data.insert(value);
11789
}
@@ -143,22 +115,13 @@ struct CLoader
143115
struct CHelper4
144116
{
145117
template <bool a>
146-
#if defined(WINDOWS)
147-
static void load_data(T& data, M& stream, const P& p)
148-
#elif defined(LINUX)
149-
static void load_data(std::enable_if_t<a, T&> data, M& stream, const P& p)
150-
#endif
118+
static void load_data(std::enable_if_t<!a, T&> data, M& stream, const P& p)
151119
{
152120
CHelper<T>::load_data<object_type_traits::is_pointer<T>::value>(data, stream, p);
153121
}
154122

155-
#if defined(WINDOWS)
156-
template <>
157-
static void load_data<true>(T& data, M& stream, const P& p)
158-
#elif defined(LINUX)
159123
template <bool a>
160-
static void load_data(std::enable_if_t<!a, T&> data, M& stream, const P& p)
161-
#endif
124+
static void load_data(std::enable_if_t<a, T&> data, M& stream, const P& p)
162125
{
163126
CHelper3::load_data(data, stream, p);
164127
}
@@ -307,7 +270,7 @@ struct CLoader
307270
template <typename T>
308271
static void load_data(T& data, M& stream, const P& p)
309272
{
310-
CHelper4<T>::load_data<object_type_traits::is_stl_container<T>::value>(data, stream, p);
273+
CHelper4<T>::template load_data<object_type_traits::is_stl_container<T>::value>(data, stream, p);
311274
}
312275
};
313276

src/Common/object_saver.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,7 @@ struct CSaver
170170
template <typename T>
171171
IC static void save_data(const T& data, M& stream, const P& p)
172172
{
173-
CHelper4<T>::save_data<object_type_traits::is_stl_container<T>::value>(data, stream, p);
173+
CHelper4<T>::template save_data<object_type_traits::is_stl_container<T>::value>(data, stream, p);
174174
}
175175
};
176176

0 commit comments

Comments
 (0)