@@ -132,8 +132,16 @@ struct comparable_distance_result
132132{};
133133
134134
135- template <typename Geometry1, typename ...Ts, typename Strategy>
136- struct comparable_distance_result <Geometry1, boost::variant<Ts...>, Strategy>
135+ template
136+ <
137+ typename Geometry1,
138+ BOOST_VARIANT_ENUM_PARAMS (typename T),
139+ typename Strategy
140+ >
141+ struct comparable_distance_result
142+ <
143+ Geometry1, boost::variant<BOOST_VARIANT_ENUM_PARAMS(T)>, Strategy
144+ >
137145{
138146 // Select the most precise distance strategy result type
139147 // for all variant type combinations.
@@ -142,7 +150,7 @@ struct comparable_distance_result<Geometry1, boost::variant<Ts...>, Strategy>
142150 typedef typename util::select_combination_element
143151 <
144152 util::type_sequence<Geometry1>,
145- util::type_sequence<Ts... >,
153+ util::type_sequence<BOOST_VARIANT_ENUM_PARAMS(T) >,
146154 detail::distance::more_precise_comparable_distance_result
147155 <
148156 Strategy
@@ -159,19 +167,34 @@ struct comparable_distance_result<Geometry1, boost::variant<Ts...>, Strategy>
159167
160168
161169// Distance arguments are commutative
162- template <typename ...Ts, typename Geometry2, typename Strategy>
163- struct comparable_distance_result <boost::variant<Ts...>, Geometry2, Strategy>
170+ template
171+ <
172+ BOOST_VARIANT_ENUM_PARAMS (typename T),
173+ typename Geometry2,
174+ typename Strategy
175+ >
176+ struct comparable_distance_result
177+ <
178+ boost::variant<BOOST_VARIANT_ENUM_PARAMS(T)>, Geometry2, Strategy
179+ >
164180 : public comparable_distance_result
165181 <
166- Geometry2, boost::variant<Ts... >, Strategy
182+ Geometry2, boost::variant<BOOST_VARIANT_ENUM_PARAMS(T) >, Strategy
167183 >
168184{};
169185
170186
171- template <typename ...Ts, typename ...Us, typename Strategy>
187+ template
188+ <
189+ BOOST_VARIANT_ENUM_PARAMS (typename T),
190+ BOOST_VARIANT_ENUM_PARAMS (typename U),
191+ typename Strategy
192+ >
172193struct comparable_distance_result
173194 <
174- boost::variant<Ts...>, boost::variant<Us...>, Strategy
195+ boost::variant<BOOST_VARIANT_ENUM_PARAMS(T)>,
196+ boost::variant<BOOST_VARIANT_ENUM_PARAMS(U)>,
197+ Strategy
175198 >
176199{
177200 // Select the most precise distance strategy result type
@@ -180,8 +203,8 @@ struct comparable_distance_result
180203 // but is_implemented is not ready for prime time.
181204 typedef typename util::select_combination_element
182205 <
183- util::type_sequence<Ts... >,
184- util::type_sequence<Us... >,
206+ util::type_sequence<BOOST_VARIANT_ENUM_PARAMS(T) >,
207+ util::type_sequence<BOOST_VARIANT_ENUM_PARAMS(U) >,
185208 detail::distance::more_precise_comparable_distance_result
186209 <
187210 Strategy
0 commit comments