File tree Expand file tree Collapse file tree 2 files changed +13
-9
lines changed
Expand file tree Collapse file tree 2 files changed +13
-9
lines changed Original file line number Diff line number Diff line change 2222#include < cassert>
2323#include < cmath>
2424#include < initializer_list>
25+ #include < type_traits>
2526#include < utility>
2627#include < variant>
2728#include < vector>
@@ -197,12 +198,15 @@ class multigeometry_t
197198 using iterator = typename std::vector<GEOM>::iterator;
198199 using value_type = GEOM;
199200
201+ static constexpr bool const for_point = std::is_same_v<GEOM, point_t >;
202+
200203 [[nodiscard]] std::size_t num_geometries () const noexcept
201204 {
202205 return m_geometry.size ();
203206 }
204207
205- GEOM &add_geometry (GEOM &&geom)
208+ GEOM &
209+ add_geometry (typename std::conditional_t <for_point, point_t , GEOM &&> geom)
206210 {
207211 m_geometry.push_back (std::forward<GEOM>(geom));
208212 return m_geometry.back ();
Original file line number Diff line number Diff line change @@ -332,31 +332,31 @@ TEST_CASE("expire multipoint geometry", "[NoDB]")
332332 expire_config_t const expire_config;
333333 expire_tiles et{zoom, defproj};
334334
335- geom::point_t p1{0.0 , 0.0 };
336- geom::point_t p2{15000.0 , 15000.0 };
335+ geom::point_t const p1{0.0 , 0.0 };
336+ geom::point_t const p2{15000.0 , 15000.0 };
337337
338338 SECTION (" multipoint" )
339339 {
340340 geom::multipoint_t mpt;
341- mpt.add_geometry (std::move (p1) );
342- mpt.add_geometry (std::move (p2) );
341+ mpt.add_geometry (p1 );
342+ mpt.add_geometry (p2 );
343343 et.from_geometry (mpt, expire_config);
344344 }
345345
346346 SECTION (" geom" )
347347 {
348348 geom::multipoint_t mpt;
349- mpt.add_geometry (std::move (p1) );
350- mpt.add_geometry (std::move (p2) );
349+ mpt.add_geometry (p1 );
350+ mpt.add_geometry (p2 );
351351 geom::geometry_t const geom{std::move (mpt)};
352352 et.from_geometry (geom, expire_config);
353353 }
354354
355355 SECTION (" geom with check" )
356356 {
357357 geom::multipoint_t mpt;
358- mpt.add_geometry (std::move (p1) );
359- mpt.add_geometry (std::move (p2) );
358+ mpt.add_geometry (p1 );
359+ mpt.add_geometry (p2 );
360360 geom::geometry_t geom{std::move (mpt)};
361361 geom.set_srid (3857 );
362362 et.from_geometry_if_3857 (geom, expire_config);
You can’t perform that action at this time.
0 commit comments