summaryrefslogtreecommitdiff
path: root/boost/geometry/geometries/multi_point.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'boost/geometry/geometries/multi_point.hpp')
-rw-r--r--boost/geometry/geometries/multi_point.hpp31
1 files changed, 31 insertions, 0 deletions
diff --git a/boost/geometry/geometries/multi_point.hpp b/boost/geometry/geometries/multi_point.hpp
index d0a782a1de..a5e64bb91c 100644
--- a/boost/geometry/geometries/multi_point.hpp
+++ b/boost/geometry/geometries/multi_point.hpp
@@ -3,6 +3,7 @@
// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
+// Copyright (c) 2014 Adam Wulkiewicz, Lodz, Poland.
// Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
// (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
@@ -22,6 +23,12 @@
#include <boost/geometry/core/tags.hpp>
#include <boost/geometry/geometries/concepts/point_concept.hpp>
+#ifdef BOOST_GEOMETRY_EXPERIMENTAL_ENABLE_INITIALIZER_LIST
+#include <boost/config.hpp>
+#ifndef BOOST_NO_CXX11_HDR_INITIALIZER_LIST
+#include <initializer_list>
+#endif
+#endif
namespace boost { namespace geometry
{
@@ -66,6 +73,30 @@ public :
inline multi_point(Iterator begin, Iterator end)
: base_type(begin, end)
{}
+
+#ifdef BOOST_GEOMETRY_EXPERIMENTAL_ENABLE_INITIALIZER_LIST
+#ifndef BOOST_NO_CXX11_HDR_INITIALIZER_LIST
+
+ /// \constructor_initializer_list{multi_point}
+ inline multi_point(std::initializer_list<Point> l)
+ : base_type(l.begin(), l.end())
+ {}
+
+// Commented out for now in order to support Boost.Assign
+// Without this assignment operator first the object should be created
+// from initializer list, then it shoudl be moved.
+//// Without this workaround in MSVC the assignment operator is ambiguous
+//#ifndef BOOST_MSVC
+// /// \assignment_initializer_list{multi_point}
+// inline multi_point & operator=(std::initializer_list<Point> l)
+// {
+// base_type::assign(l.begin(), l.end());
+// return *this;
+// }
+//#endif
+
+#endif
+#endif
};
} // namespace model