https://sourceforge.net/p/htmlcxx/patches/9/ Author: Frantisek Boranek Date: Thu, 6 Oct 2022 22:39:21 +0200 Subject: [PATCH] fix compiling with c++20 The second parameter in function allocate() was removed in C++20 standard. These changes are backward compatible. Prior standard will use these: * < C++17: pointer allocate( size_type n, const void * hint = 0 ); // (until C++17) * < C++20: T* allocate( std::size_t n ); // (since C++17) * = C++20: [[nodiscard]] constexpr T* allocate( std::size_t n ); --- a/html/tree.h +++ b/html/tree.h @@ -416,8 +416,8 @@ tree::~tree() template void tree::head_initialise_() { - head = alloc_.allocate(1,0); // MSVC does not have default second argument - feet = alloc_.allocate(1,0); + head = alloc_.allocate(1); + feet = alloc_.allocate(1); head->parent=0; head->first_child=0; @@ -672,7 +672,7 @@ iter tree::append_child(iter position) { assert(position.node!=head); - tree_node* tmp = alloc_.allocate(1,0); + tree_node* tmp = alloc_.allocate(1); kp::constructor(&tmp->data); tmp->first_child=0; tmp->last_child=0; @@ -700,7 +700,7 @@ iter tree::append_child(iter position, const T& x) // the API change. assert(position.node!=head); - tree_node* tmp = alloc_.allocate(1,0); + tree_node* tmp = alloc_.allocate(1); kp::constructor(&tmp->data, x); tmp->first_child=0; tmp->last_child=0; @@ -756,7 +756,7 @@ iter tree::insert(iter position, const T& x) position.node=feet; // Backward compatibility: when calling insert on a null node, // insert before the feet. } - tree_node* tmp = alloc_.allocate(1,0); + tree_node* tmp = alloc_.allocate(1); kp::constructor(&tmp->data, x); tmp->first_child=0; tmp->last_child=0; @@ -776,7 +776,7 @@ iter tree::insert(iter position, const T& x) template typename tree::sibling_iterator tree::insert(sibling_iterator position, const T& x) { - tree_node* tmp = alloc_.allocate(1,0); + tree_node* tmp = alloc_.allocate(1); kp::constructor(&tmp->data, x); tmp->first_child=0; tmp->last_child=0; @@ -804,7 +804,7 @@ template template iter tree::insert_after(iter position, const T& x) { - tree_node* tmp = alloc_.allocate(1,0); + tree_node* tmp = alloc_.allocate(1); kp::constructor(&tmp->data, x); tmp->first_child=0; tmp->last_child=0; @@ -864,7 +864,7 @@ iter tree::replace(iter position, const iterator_base& f // replace the node at position with head of the replacement tree at from erase_children(position); - tree_node* tmp = alloc_.allocate(1,0); + tree_node* tmp = alloc_.allocate(1); kp::constructor(&tmp->data, (*from)); tmp->first_child=0; tmp->last_child=0;