Skip to content

Commit 52e749c

Browse files
committed
make utility type in Combine private and avoid collisions
msvc by default doesn't use two-phase lookup, so this caused conflicts
1 parent e0ccbab commit 52e749c

File tree

1 file changed

+15
-13
lines changed

1 file changed

+15
-13
lines changed

include/adm/detail/auto_base.hpp

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -171,21 +171,21 @@ namespace adm {
171171

172172
template <typename A, typename... Tail>
173173
struct MakeCombineBase {
174-
using B = typename HasParametersT<Tail...>::type;
174+
using Base = typename HasParametersT<Tail...>::type;
175175

176176
using combine_add_remove =
177177
std::integral_constant<bool, typename A::has_add_remove() &&
178-
typename B::has_add_remove()>;
178+
typename Base::has_add_remove()>;
179179
using combine_get_set_has =
180180
std::integral_constant<bool, typename A::has_get_set_has() &&
181-
typename B::has_get_set_has()>;
181+
typename Base::has_get_set_has()>;
182182
using combine_isDefault_unset =
183183
std::integral_constant<bool, typename A::has_isDefault_unset() &&
184-
typename B::has_isDefault_unset()>;
184+
typename Base::has_isDefault_unset()>;
185185

186186
using IsDefaultUnsetCombined =
187187
std::conditional_t<combine_isDefault_unset::value,
188-
CombineIsDefaultUnsetB<A, B>, CombineRaw<A, B>>;
188+
CombineIsDefaultUnsetB<A, Base>, CombineRaw<A, Base>>;
189189

190190
// - need to combine
191191
// - last in chain -> use CombineB<A, B>
@@ -195,16 +195,16 @@ namespace adm {
195195
using GetSetHasCombined = std::conditional_t<
196196
combine_get_set_has::value,
197197
std::conditional_t<!combine_isDefault_unset::value,
198-
CombineGetSetHasB<A, B>,
199-
CombineGetSetHas<A, B, IsDefaultUnsetCombined>>,
198+
CombineGetSetHasB<A, Base>,
199+
CombineGetSetHas<A, Base, IsDefaultUnsetCombined>>,
200200
IsDefaultUnsetCombined>;
201201

202202
using AddRemoveCombined = std::conditional_t<
203203
combine_add_remove::value,
204204
std::conditional_t<!(combine_isDefault_unset::value ||
205205
combine_get_set_has::value),
206-
CombineAddRemoveB<A, B>,
207-
CombineAddRemove<A, B, GetSetHasCombined>>,
206+
CombineAddRemoveB<A, Base>,
207+
CombineAddRemove<A, Base, GetSetHasCombined>>,
208208
GetSetHasCombined>;
209209

210210
using type = AddRemoveCombined;
@@ -213,17 +213,19 @@ namespace adm {
213213
/// a subclass of A and B, with methods according to their Flags
214214
template <typename A, typename... Tail>
215215
struct Combine : public MakeCombineBase<A, Tail...>::type {
216-
using B = typename HasParametersT<Tail...>::type;
216+
private:
217+
using Base = typename HasParametersT<Tail...>::type;
217218

219+
public:
218220
using has_get_set_has =
219221
std::integral_constant<bool, typename A::has_get_set_has() ||
220-
typename B::has_get_set_has()>;
222+
typename Base::has_get_set_has()>;
221223
using has_isDefault_unset =
222224
std::integral_constant<bool, typename A::has_isDefault_unset() ||
223-
typename B::has_isDefault_unset()>;
225+
typename Base::has_isDefault_unset()>;
224226
using has_add_remove =
225227
std::integral_constant<bool, typename A::has_add_remove() ||
226-
typename B::has_add_remove()>;
228+
typename Base::has_add_remove()>;
227229
};
228230

229231
template <typename... Bases>

0 commit comments

Comments
 (0)