yandex / ozo

OZO is a C++17 Boost.Asio based header-only library for asyncronous communication with PostgreSQL DBMS.
PostgreSQL License
226 stars 45 forks source link

C++ 20 Compatible #285

Closed neogenie closed 3 years ago

neogenie commented 3 years ago

If compile with -std=c++20

got an error:

In file included from request.cpp:1:
In file included from cmake-build-debug/_deps/ozo-src/include/ozo/connection_info.h:5:
In file included from cmake-build-debug/_deps/ozo-src/include/ozo/impl/async_connect.h:6:
In file included from cmake-build-debug/_deps/ozo-src/include/ozo/impl/io.h:6:
cmake-build-debug/_deps/ozo-src/include/ozo/io/binary_query.h:131:66: error: no member named 'rebind' in 'std::__1::allocator<void>'
                                    typename Allocator::template rebind<char>::other>;
                                             ~~~~~~~~~~~         ^

because of rebind and other helpers was removed from library ((deprecated in C++17)(removed in C++20)):

http://www.open-std.org/Jtc1/sc22/wg21/docs/papers/2018/p0619r3.html https://en.cppreference.com/w/cpp/memory/allocator

thed636 commented 3 years ago

Hi Neo! Thanks for the report! It looks like the new standard and new versions of Boost won't give us time to relax :)

neogenie commented 3 years ago

When is a fix expected and is there any need for help?