Hello,
We are using boost::icl::interval_set with very large amounts of intervals, and we are having some performance issues.
Profiling showed that, in our use-case, a lot of time was spent on memory allocation/deallocation, and swapping std::set for boost::flat_set made a huge, positive difference.
We may have a very specific use-case, but would you consider a small modification to the library inside "boost/icl/impl_config.hpp", in order to open the door for other set/map implementations?
Here is the simple change we made to "boost/icl/impl_config.hpp" for this experiment:
<code>
#if defined(ICL_USE_BOOST_MOVE_IMPLEMENTATION)
# define ICL_IMPL_SPACE boost::container
#elif defined(ICL_USE_STD_IMPLEMENTATION)
# define ICL_IMPL_SPACE std
+ #elif defined(ICL_USE_CUSTOM_IMPLEMENTATION)
+ # define ICL_IMPL_SPACE ICL_CUSTOM_IMPL_SPACE
#else
# define ICL_IMPL_SPACE std
#endif
</code>
And then declaring the following before including:
<code>
namespace custom_icl
{
template