
Hi Andrey, Thanks for looking it up! I hope it gets merged into 1.68. /Viktor On Fri, Jun 15, 2018 at 1:50 PM Andrey Semashev via Boost < boost@lists.boost.org> wrote:
On 06/15/18 13:22, Viktor Sehr via Boost wrote:
It seems to me that neither boost::flat_map nor boost:flat_set with a custom comparator such as std::less<> behaves like std::set/std::map. This results in unnecessary allocation, in difference from std::map/set when used with a std::string as key for example
Example: // Please note that I pretend that "dummy" is large enough to make the std::string utilize the heap. auto set = std::set<std::string, std::less<> >{}; auto n = set.count("dummy"); // No conversion from const char* to std::string
auto flatset = boost::container::flat_set<std::string, std::less<> >{}; auto n = flatset.count("dummy"); // const char* is converted to a std::string before comparison, thus resulting in an unnecessary allocation.
Is this a known issue intended to be resolved?
Support for templated lookup methods have been added not long ago.
https://github.com/boostorg/container/issues/69
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost