Bug with Linear_cell_complex

One cannot call `std::allocator_traits<Alloc>::construct`, because some of linear cell complex classes have protected constructors with a lot of friend classes. They cannot be friend of all possible allocator classes, so...
This commit is contained in:
Laurent Rineau 2025-01-31 19:19:01 +01:00
parent d582ec6ee1
commit 45da3684ba
2 changed files with 2 additions and 2 deletions

View File

@ -402,7 +402,7 @@ public:
pointer ret = free_list;
free_list = clean_pointee(ret);
const auto ts = Time_stamper::time_stamp(ret);
std::allocator_traits<allocator_type>::construct(alloc, ret, std::forward<Args>(args)...);
new (ret) value_type(std::forward<Args>(args)...);
Time_stamper::restore_timestamp(ret, ts);
Time_stamper::set_time_stamp(ret, time_stamp);
CGAL_assertion(type(ret) == USED);

View File

@ -353,7 +353,7 @@ public:
pointer ret = init_insert(fl);
auto erase_counter = EraseCounterStrategy<T>::erase_counter(*ret);
const auto ts = Time_stamper::time_stamp(ret);
std::allocator_traits<allocator_type>::construct(m_alloc, ret, std::forward<Args>(args)...);
new (ret) value_type(std::forward<Args>(args)...);
Time_stamper::restore_timestamp(ret, ts);
EraseCounterStrategy<T>::set_erase_counter(*ret, erase_counter);
return finalize_insert(ret, fl);