--- /dev/null
+Dynamic polymorphism in C++ requires that objects (such as instances
+of classes derived from an abstract base) be accessed through an
+indirection pointer because their actual type and size are not known
+at the point of usage. As a consequence, regular containers cannot
+store polymorphic objects directly: the usual workaround is to have
+containers of pointers to heap-allocated elements.
+
+When the particular traversal order is not relevant to the user
+application, Boost.PolyCollection proposes an alternative data
+structure that restores memory contiguity and packs elements according
+to their concrete type. Three container class templates are provided:
+
+- boost::base_collection
+- boost::function_collection
+- boost::any_collection
+
+respectively dealing with three different types of dynamic polymorphism available in C++:
+
+- Classic base/derived or OOP polymorphism.
+- Function wrapping in the spirit of std::function.
+- So-called duck typing as implemented by Boost.TypeErasure.
+
+The interface of these containers closely follows that of standard
+containers.
--- /dev/null
+# $NetBSD$
+
+PKGNAME= boost-poly_collection-20170612
+DISTNAME= develop
+CATEGORIES= devel
+MASTER_SITES= https://github.com/boostorg/poly_collection/archive/
+DIST_SUBDIR= ${PKGNAME}
+EXTRACT_SUFX= .zip
+
+MAINTAINER= brook@NetBSD.org
+HOMEPAGE= http://rawgit.com/joaquintides/poly_collection/website/doc/html/index.html
+COMMENT= Containers supporting dynamic polymorphism in C++
+LICENSE= boost-license
+
+WRKSRC= ${WRKDIR}/poly_collection-develop
+USE_TOOLS+= pax
+
+# XXX - remove this or add more to do-install and PLIST
+.if !empty(XXX_BUILD_BOOST_POLY_COLLECTION)
+USE_LANGUAGES+= c c++
+USE_CMAKE=
+CMAKE_INSTALL_PREFIX= ${PREFIX}/include/boost/poly_collection
+.include "../../devel/boost-headers/buildlink3.mk"
+.else
+NO_BUILD=
+DEPENDS+= boost-headers>=1.62.0:../../devel/boost-headers
+.endif
+
+INSTALLATION_DIRS+= include/boost/poly_collection share/examples/boost-poly_collection
+
+do-install:
+ cd ${WRKSRC}/include/boost/poly_collection && ${PAX} -rw . ${DESTDIR}${PREFIX}/include/boost/poly_collection
+ cd ${WRKSRC}/example && ${PAX} -rw . ${DESTDIR}${PREFIX}/share/examples/boost-poly_collection
+
+.include "../../mk/bsd.pkg.mk"
--- /dev/null
+@comment $NetBSD$
+include/boost/poly_collection/algorithm.hpp
+include/boost/poly_collection/any_collection.hpp
+include/boost/poly_collection/any_collection_fwd.hpp
+include/boost/poly_collection/base_collection.hpp
+include/boost/poly_collection/base_collection_fwd.hpp
+include/boost/poly_collection/detail/any_iterator.hpp
+include/boost/poly_collection/detail/any_model.hpp
+include/boost/poly_collection/detail/auto_iterator.hpp
+include/boost/poly_collection/detail/base_model.hpp
+include/boost/poly_collection/detail/callable_wrapper.hpp
+include/boost/poly_collection/detail/callable_wrapper_iterator.hpp
+include/boost/poly_collection/detail/function_model.hpp
+include/boost/poly_collection/detail/functional.hpp
+include/boost/poly_collection/detail/integer_sequence.hpp
+include/boost/poly_collection/detail/is_acceptable.hpp
+include/boost/poly_collection/detail/is_constructible.hpp
+include/boost/poly_collection/detail/is_equality_comparable.hpp
+include/boost/poly_collection/detail/is_final.hpp
+include/boost/poly_collection/detail/is_invocable.hpp
+include/boost/poly_collection/detail/is_likely_stateless_lambda.hpp
+include/boost/poly_collection/detail/is_nothrow_eq_comparable.hpp
+include/boost/poly_collection/detail/iterator_impl.hpp
+include/boost/poly_collection/detail/iterator_traits.hpp
+include/boost/poly_collection/detail/packed_segment.hpp
+include/boost/poly_collection/detail/poly_collection.hpp
+include/boost/poly_collection/detail/segment.hpp
+include/boost/poly_collection/detail/segment_backend.hpp
+include/boost/poly_collection/detail/segment_split.hpp
+include/boost/poly_collection/detail/split_segment.hpp
+include/boost/poly_collection/detail/stride_iterator.hpp
+include/boost/poly_collection/detail/type_restitution.hpp
+include/boost/poly_collection/detail/value_holder.hpp
+include/boost/poly_collection/exception.hpp
+include/boost/poly_collection/function_collection.hpp
+include/boost/poly_collection/function_collection_fwd.hpp
+share/examples/boost-poly_collection/Jamfile.v2
+share/examples/boost-poly_collection/algorithms.cpp
+share/examples/boost-poly_collection/basic_any.cpp
+share/examples/boost-poly_collection/basic_base.cpp
+share/examples/boost-poly_collection/basic_function.cpp
+share/examples/boost-poly_collection/exceptions.cpp
+share/examples/boost-poly_collection/insertion_emplacement.cpp
+share/examples/boost-poly_collection/perf.cpp
+share/examples/boost-poly_collection/rolegame.hpp
+share/examples/boost-poly_collection/segmented_structure.cpp