/celibs/boost_1_74_0/boost/container/detail/dispatch_uses_allocator.hpp:251:8: error: call to function 'dispatch_uses_allocator' that is neither visible in the template definition nor found by argument-dependent lookup
(dispatch_uses_allocator)(construct_alloc, arg_alloc, dtl::addressof(p->second), ::boost::forward<V>(y));
However, if test_t is redefined to use a std::tuple instead of a std::pair the program compiles. This is unexpected, as a std::pair and a two element std::tuple should act similarly.
Tested with boost 1.74 and both clang 10 and gcc 10. Also, if I write a similar test program with std::pmr instead of boost::pmr both the pair and tuple versions work.
Given the following program:
Results in the following compile error:
However, if
test_t
is redefined to use astd::tuple
instead of astd::pair
the program compiles. This is unexpected, as astd::pair
and a two elementstd::tuple
should act similarly.Tested with boost 1.74 and both clang 10 and gcc 10. Also, if I write a similar test program with
std::pmr
instead ofboost::pmr
both thepair
andtuple
versions work.