Description
When trying to build MongoCXX driver with standard polyfill, the build fails.
Steps to reproduce:
cd mongo-cxx-driver/build
|
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_STANDARD=17 .. |
make
|
CMake does state that it will be using C++17 std library polyfills:
-- The CXX compiler identification is GNU 8.2.0 |
-- The C compiler identification is GNU 8.2.0 |
-- Auto-configuring bsoncxx to use C++17 std library polyfills since C++17 is active and user didn't specify otherwise |
{code]
|
|
|
Running make fails with:
|
|
|
{code:java}
|
In file included from /github/mongo-cxx-driver/src/mongocxx/private/client_session.hh:24, |
from /github/mongo-cxx-driver/src/mongocxx/bulk_write.cpp:25: |
/github/mongo-cxx-driver/src/mongocxx/options/private/transaction.hh: In member function 'std::optional<mongocxx::v_noabi::read_concern> mongocxx::v_noabi::options::transaction::impl::read_concern() const': |
/github/mongo-cxx-driver/src/mongocxx/options/private/transaction.hh:64:88: error: could not convert '{std::make_unique(_Args&& ...) [with _Tp = mongocxx::v_noabi::read_concern::impl; _Args = {_mongoc_read_concern_t*}; typename std::_MakeUniq<_Tp>::__single_object = std::unique_ptr<mongocxx::v_noabi::read_concern::impl>]()}' from '<brace-enclosed initializer list>' to 'std::optional<mongocxx::v_noabi::read_concern>' |
return {stdx::make_unique<read_concern::impl>(libmongoc::read_concern_copy(rc))}; |
^
|
/github/mongo-cxx-driver/src/mongocxx/options/private/transaction.hh: In member function 'std::optional<mongocxx::v_noabi::write_concern> mongocxx::v_noabi::options::transaction::impl::write_concern() const': |
/github/mongo-cxx-driver/src/mongocxx/options/private/transaction.hh:77:90: error: could not convert '{std::make_unique(_Args&& ...) [with _Tp = mongocxx::v_noabi::write_concern::impl; _Args = {_mongoc_write_concern_t*}; typename std::_MakeUniq<_Tp>::__single_object = std::unique_ptr<mongocxx::v_noabi::write_concern::impl>]()}' from '<brace-enclosed initializer list>' to 'std::optional<mongocxx::v_noabi::write_concern>' |
return {stdx::make_unique<write_concern::impl>(libmongoc::write_concern_copy(wc))}; |
^
|
/github/mongo-cxx-driver/src/mongocxx/options/private/transaction.hh: In member function 'std::optional<mongocxx::v_noabi::read_preference> mongocxx::v_noabi::options::transaction::impl::read_preference() const': |
/github/mongo-cxx-driver/src/mongocxx/options/private/transaction.hh:90:89: error: could not convert '{std::make_unique(_Args&& ...) [with _Tp = mongocxx::v_noabi::read_preference::impl; _Args = {_mongoc_read_prefs_t*}; typename std::_MakeUniq<_Tp>::__single_object = std::unique_ptr<mongocxx::v_noabi::read_preference::impl>]()}' from '<brace-enclosed initializer list>' to 'std::optional<mongocxx::v_noabi::read_preference>' |
return {stdx::make_unique<read_preference::impl>(libmongoc::read_prefs_copy(rp))}; |
When using MNMLSTC, everything is working fine.