PMEMKV build error on pmem::allocator<char>::allocator()

21 views
Skip to first unread message

Jiajie Sun

unread,
Jan 23, 2019, 4:54:56 AM1/23/19
to pmem
Hi all,

I have all PMEMKV dependencies(include MemKind) built and installed in my Centos, however error reported in pmem::allocator<char>::allocator() when build pmemkv, is their anyone know why?  Thanks.

Thank you
Jiajie Sun

====================================
[root@localhost bin]# make
-- Downloading information from GitHub about packages for Intel TBB LATEST: https://api.github.com/repos/01org/tbb/releases/latest
-- Needed file was found locally /root/production/pmemkv/pmemkv/bin/tbb2019_20181203oss_lin.tgz. Remove it if you still want to download a new one
-- Unpacking /root/production/pmemkv/pmemkv/bin/tbb2019_20181203oss_lin.tgz to /root/production/pmemkv/pmemkv/bin/tbb_downloaded/tbb2019_20181203oss_lin
-- RapidJSON found. Headers: /usr/local/lib/cmake/RapidJSON/../../../include
-- Configuring done
-- Generating done
-- Build files have been written to: /root/production/pmemkv/pmemkv/bin
[ 32%] Built target gtest
[ 36%] Building CXX object CMakeFiles/pmemkv.dir/src/pmemkv.cc.o
[ 40%] Building CXX object CMakeFiles/pmemkv.dir/src/engines/blackhole.cc.o
[ 44%] Building CXX object CMakeFiles/pmemkv.dir/src/engines/kvtree3.cc.o
[ 48%] Building CXX object CMakeFiles/pmemkv.dir/src/engines/btree.cc.o
[ 52%] Building CXX object CMakeFiles/pmemkv.dir/src/engines/mvtree.cc.o
[ 56%] Building CXX object CMakeFiles/pmemkv.dir/src/engines/vmap.cc.o
In file included from /opt/rh/devtoolset-7/root/usr/include/c++/7/string:53:0,
                 from /root/production/pmemkv/pmemkv/src/engines/../pmemkv.h:50,
                 from /root/production/pmemkv/pmemkv/src/engines/vmap.h:35,
                 from /root/production/pmemkv/pmemkv/src/engines/vmap.cc:33:
/opt/rh/devtoolset-7/root/usr/include/c++/7/bits/basic_string.tcc: In instantiation of ‘static _CharT* std::basic_string<_CharT, _Traits, _Alloc>::_S_construct(_InIterator, _InIterator, const _Alloc&, std::forward_iterator_tag) [with _FwdIterator = const char*; _CharT = char; _Traits = std::char_traits<char>; _Alloc = pmem::allocator<char>]’:
/opt/rh/devtoolset-7/root/usr/include/c++/7/bits/basic_string.h:5033:30:   required from ‘static _CharT* std::basic_string<_CharT, _Traits, _Alloc>::_S_construct_aux(_InIterator, _InIterator, const _Alloc&, std::__false_type) [with _InIterator = const char*; _CharT = char; _Traits = std::char_traits<char>; _Alloc = pmem::allocator<char>]’
/opt/rh/devtoolset-7/root/usr/include/c++/7/bits/basic_string.h:5054:27:   required from ‘static _CharT* std::basic_string<_CharT, _Traits, _Alloc>::_S_construct(_InIterator, _InIterator, const _Alloc&) [with _InIterator = const char*; _CharT = char; _Traits = std::char_traits<char>; _Alloc = pmem::allocator<char>]’
/opt/rh/devtoolset-7/root/usr/include/c++/7/bits/basic_string.tcc:657:31:   required from ‘std::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, std::basic_string<_CharT, _Traits, _Alloc>::size_type, const _Alloc&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = pmem::allocator<char>; std::basic_string<_CharT, _Traits, _Alloc>::size_type = long unsigned int]’
/root/production/pmemkv/pmemkv/src/engines/vmap.cc:73:86:   required from here
/opt/rh/devtoolset-7/root/usr/include/c++/7/bits/basic_string.tcc:568:31: error: no matching function for call to ‘pmem::allocator<char>::allocator()’
  if (__beg == __end && __a == _Alloc())
                               ^~~~~~~~
In file included from /root/production/pmemkv/pmemkv/src/engines/vmap.h:36:0,
                 from /root/production/pmemkv/pmemkv/src/engines/vmap.cc:33:
/usr/local/include/pmem_allocator.h:134:9: note: candidate: template<class U> pmem::allocator<T>::allocator(pmem::allocator<U>&&)
         allocator(allocator<U> &&other) noexcept :
         ^~~~~~~~~
/usr/local/include/pmem_allocator.h:134:9: note:   template argument deduction/substitution failed:
In file included from /opt/rh/devtoolset-7/root/usr/include/c++/7/string:53:0,
                 from /root/production/pmemkv/pmemkv/src/engines/../pmemkv.h:50,
                 from /root/production/pmemkv/pmemkv/src/engines/vmap.h:35,
                 from /root/production/pmemkv/pmemkv/src/engines/vmap.cc:33:
/opt/rh/devtoolset-7/root/usr/include/c++/7/bits/basic_string.tcc:568:31: note:   candidate expects 1 argument, 0 provided
  if (__beg == __end && __a == _Alloc())
                               ^~~~~~~~
In file included from /root/production/pmemkv/pmemkv/src/engines/vmap.h:36:0,
                 from /root/production/pmemkv/pmemkv/src/engines/vmap.cc:33:
/usr/local/include/pmem_allocator.h:131:9: note: candidate: pmem::allocator<T>::allocator(pmem::allocator<T>&&) [with T = char]
         allocator(allocator &&other) = default;
         ^~~~~~~~~
/usr/local/include/pmem_allocator.h:131:9: note:   candidate expects 1 argument, 0 provided
/usr/local/include/pmem_allocator.h:126:9: note: candidate: template<class U> pmem::allocator<T>::allocator(const pmem::allocator<U>&)
         allocator(const allocator<U> &other) noexcept : kind_wrapper_ptr(
         ^~~~~~~~~
/usr/local/include/pmem_allocator.h:126:9: note:   template argument deduction/substitution failed:
In file included from /opt/rh/devtoolset-7/root/usr/include/c++/7/string:53:0,
                 from /root/production/pmemkv/pmemkv/src/engines/../pmemkv.h:50,
                 from /root/production/pmemkv/pmemkv/src/engines/vmap.h:35,
                 from /root/production/pmemkv/pmemkv/src/engines/vmap.cc:33:
/opt/rh/devtoolset-7/root/usr/include/c++/7/bits/basic_string.tcc:568:31: note:   candidate expects 1 argument, 0 provided
  if (__beg == __end && __a == _Alloc())
                               ^~~~~~~~
In file included from /root/production/pmemkv/pmemkv/src/engines/vmap.h:36:0,
                 from /root/production/pmemkv/pmemkv/src/engines/vmap.cc:33:
/usr/local/include/pmem_allocator.h:123:9: note: candidate: pmem::allocator<T>::allocator(const pmem::allocator<T>&) [with T = char]
         allocator(const allocator &other) = default;
         ^~~~~~~~~
/usr/local/include/pmem_allocator.h:123:9: note:   candidate expects 1 argument, 0 provided
/usr/local/include/pmem_allocator.h:118:18: note: candidate: pmem::allocator<T>::allocator(const string&, size_t) [with T = char; std::string = std::basic_string<char>; size_t = long unsigned int]
         explicit allocator(const std::string &dir, size_t max_size) :
                  ^~~~~~~~~
/usr/local/include/pmem_allocator.h:118:18: note:   candidate expects 2 arguments, 0 provided
/usr/local/include/pmem_allocator.h:113:18: note: candidate: pmem::allocator<T>::allocator(const char*, size_t) [with T = char; size_t = long unsigned int]
         explicit allocator(const char *dir, size_t max_size) :
                  ^~~~~~~~~
/usr/local/include/pmem_allocator.h:113:18: note:   candidate expects 2 arguments, 0 provided
In file included from /opt/rh/devtoolset-7/root/usr/include/c++/7/string:53:0,
                 from /root/production/pmemkv/pmemkv/src/engines/../pmemkv.h:50,
                 from /root/production/pmemkv/pmemkv/src/engines/vmap.h:35,
                 from /root/production/pmemkv/pmemkv/src/engines/vmap.cc:33:
/opt/rh/devtoolset-7/root/usr/include/c++/7/bits/basic_string.tcc: In instantiation of ‘static _CharT* std::basic_string<_CharT, _Traits, _Alloc>::_S_construct(_InIterator, _InIterator, const _Alloc&, std::forward_iterator_tag) [with _FwdIterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char, std::char_traits<char>, pmem::allocator<char> > >; _CharT = char; _Traits = std::char_traits<char>; _Alloc = pmem::allocator<char>]’:
/opt/rh/devtoolset-7/root/usr/include/c++/7/bits/basic_string.h:5033:30:   required from ‘static _CharT* std::basic_string<_CharT, _Traits, _Alloc>::_S_construct_aux(_InIterator, _InIterator, const _Alloc&, std::__false_type) [with _InIterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char, std::char_traits<char>, pmem::allocator<char> > >; _CharT = char; _Traits = std::char_traits<char>; _Alloc = pmem::allocator<char>]’
/opt/rh/devtoolset-7/root/usr/include/c++/7/bits/basic_string.h:5054:27:   required from ‘static _CharT* std::basic_string<_CharT, _Traits, _Alloc>::_S_construct(_InIterator, _InIterator, const _Alloc&) [with _InIterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char, std::char_traits<char>, pmem::allocator<char> > >; _CharT = char; _Traits = std::char_traits<char>; _Alloc = pmem::allocator<char>]’
/opt/rh/devtoolset-7/root/usr/include/c++/7/bits/basic_string.tcc:679:31:   required from ‘std::basic_string<_CharT, _Traits, _Alloc>::basic_string(_InputIterator, _InputIterator, const _Alloc&) [with _InputIterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char, std::char_traits<char>, pmem::allocator<char> > >; _CharT = char; _Traits = std::char_traits<char>; _Alloc = pmem::allocator<char>]’
/opt/rh/devtoolset-7/root/usr/include/c++/7/bits/basic_string.tcc:984:23:   required from ‘void std::basic_string<_CharT, _Traits, _Alloc>::swap(std::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = pmem::allocator<char>]’
/opt/rh/devtoolset-7/root/usr/include/c++/7/bits/basic_string.h:3666:8:   required from ‘std::basic_string<_CharT, _Traits, _Alloc>& std::basic_string<_CharT, _Traits, _Alloc>::operator=(std::basic_string<_CharT, _Traits, _Alloc>&&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = pmem::allocator<char>]’
/root/production/pmemkv/pmemkv/src/engines/vmap.cc:91:70:   required from here
/opt/rh/devtoolset-7/root/usr/include/c++/7/bits/basic_string.tcc:568:31: error: no matching function for call to ‘pmem::allocator<char>::allocator()’
  if (__beg == __end && __a == _Alloc())
                               ^~~~~~~~
In file included from /root/production/pmemkv/pmemkv/src/engines/vmap.h:36:0,
                 from /root/production/pmemkv/pmemkv/src/engines/vmap.cc:33:
/usr/local/include/pmem_allocator.h:134:9: note: candidate: template<class U> pmem::allocator<T>::allocator(pmem::allocator<U>&&)
         allocator(allocator<U> &&other) noexcept :
         ^~~~~~~~~
/usr/local/include/pmem_allocator.h:134:9: note:   template argument deduction/substitution failed:
In file included from /opt/rh/devtoolset-7/root/usr/include/c++/7/string:53:0,
                 from /root/production/pmemkv/pmemkv/src/engines/../pmemkv.h:50,
                 from /root/production/pmemkv/pmemkv/src/engines/vmap.h:35,
                 from /root/production/pmemkv/pmemkv/src/engines/vmap.cc:33:
/opt/rh/devtoolset-7/root/usr/include/c++/7/bits/basic_string.tcc:568:31: note:   candidate expects 1 argument, 0 provided
  if (__beg == __end && __a == _Alloc())
                               ^~~~~~~~
In file included from /root/production/pmemkv/pmemkv/src/engines/vmap.h:36:0,
                 from /root/production/pmemkv/pmemkv/src/engines/vmap.cc:33:
/usr/local/include/pmem_allocator.h:131:9: note: candidate: pmem::allocator<T>::allocator(pmem::allocator<T>&&) [with T = char]
         allocator(allocator &&other) = default;
         ^~~~~~~~~
/usr/local/include/pmem_allocator.h:131:9: note:   candidate expects 1 argument, 0 provided
/usr/local/include/pmem_allocator.h:126:9: note: candidate: template<class U> pmem::allocator<T>::allocator(const pmem::allocator<U>&)
         allocator(const allocator<U> &other) noexcept : kind_wrapper_ptr(
         ^~~~~~~~~
/usr/local/include/pmem_allocator.h:126:9: note:   template argument deduction/substitution failed:
In file included from /opt/rh/devtoolset-7/root/usr/include/c++/7/string:53:0,
                 from /root/production/pmemkv/pmemkv/src/engines/../pmemkv.h:50,
                 from /root/production/pmemkv/pmemkv/src/engines/vmap.h:35,
                 from /root/production/pmemkv/pmemkv/src/engines/vmap.cc:33:
/opt/rh/devtoolset-7/root/usr/include/c++/7/bits/basic_string.tcc:568:31: note:   candidate expects 1 argument, 0 provided
  if (__beg == __end && __a == _Alloc())
                               ^~~~~~~~
In file included from /root/production/pmemkv/pmemkv/src/engines/vmap.h:36:0,
                 from /root/production/pmemkv/pmemkv/src/engines/vmap.cc:33:
/usr/local/include/pmem_allocator.h:123:9: note: candidate: pmem::allocator<T>::allocator(const pmem::allocator<T>&) [with T = char]
         allocator(const allocator &other) = default;
         ^~~~~~~~~
/usr/local/include/pmem_allocator.h:123:9: note:   candidate expects 1 argument, 0 provided
/usr/local/include/pmem_allocator.h:118:18: note: candidate: pmem::allocator<T>::allocator(const string&, size_t) [with T = char; std::string = std::basic_string<char>; size_t = long unsigned int]
         explicit allocator(const std::string &dir, size_t max_size) :
                  ^~~~~~~~~
/usr/local/include/pmem_allocator.h:118:18: note:   candidate expects 2 arguments, 0 provided
/usr/local/include/pmem_allocator.h:113:18: note: candidate: pmem::allocator<T>::allocator(const char*, size_t) [with T = char; size_t = long unsigned int]
         explicit allocator(const char *dir, size_t max_size) :
                  ^~~~~~~~~
/usr/local/include/pmem_allocator.h:113:18: note:   candidate expects 2 arguments, 0 provided
In file included from /opt/rh/devtoolset-7/root/usr/include/c++/7/memory:77:0,
                 from /usr/local/include/libpmemobj++/persistent_ptr.hpp:43,
                 from /usr/local/include/libpmemobj++/detail/check_persistent_ptr_array.hpp:43,
                 from /usr/local/include/libpmemobj++/make_persistent.hpp:43,
                 from /root/production/pmemkv/pmemkv/src/engines/../pmemkv.h:51,
                 from /root/production/pmemkv/pmemkv/src/engines/vmap.h:35,
                 from /root/production/pmemkv/pmemkv/src/engines/vmap.cc:33:
/opt/rh/devtoolset-7/root/usr/include/c++/7/bits/uses_allocator.h: In instantiation of ‘struct std::__uses_alloc<true, const std::basic_string<char, std::char_traits<char>, pmem::allocator<char> >, std::scoped_allocator_adaptor<pmem::allocator<std::_Rb_tree_node<std::pair<const std::basic_string<char, std::char_traits<char>, pmem::allocator<char> >, std::basic_string<char, std::char_traits<char>, pmem::allocator<char> > > > > >, std::basic_string<char, std::char_traits<char>, pmem::allocator<char> >&&>’:
/opt/rh/devtoolset-7/root/usr/include/c++/7/scoped_allocator:369:57:   required from ‘void std::scoped_allocator_adaptor<_OuterAlloc, _InnerAllocs>::construct(std::pair<_U1, _U2>*, std::piecewise_construct_t, std::tuple<_Args2 ...>, std::tuple<_Args2 ...>) [with _T1 = const std::basic_string<char, std::char_traits<char>, pmem::allocator<char> >; _T2 = std::basic_string<char, std::char_traits<char>, pmem::allocator<char> >; _Args1 = {std::basic_string<char, std::char_traits<char>, pmem::allocator<char> >&&}; _Args2 = {}; _OuterAlloc = pmem::allocator<std::_Rb_tree_node<std::pair<const std::basic_string<char, std::char_traits<char>, pmem::allocator<char> >, std::basic_string<char, std::char_traits<char>, pmem::allocator<char> > > > >; _InnerAllocs = {}]’
/opt/rh/devtoolset-7/root/usr/include/c++/7/bits/alloc_traits.h:243:4:   required from ‘static std::_Require<typename std::allocator_traits<_Alloc>::__construct_helper<_Tp, _Args>::type> std::allocator_traits<_Alloc>::_S_construct(_Alloc&, _Tp*, _Args&& ...) [with _Tp = std::pair<const std::basic_string<char, std::char_traits<char>, pmem::allocator<char> >, std::basic_string<char, std::char_traits<char>, pmem::allocator<char> > >; _Args = {const std::piecewise_construct_t&, std::tuple<std::basic_string<char, std::char_traits<char>, pmem::allocator<char> >&&>, std::tuple<>}; _Alloc = std::scoped_allocator_adaptor<pmem::allocator<std::_Rb_tree_node<std::pair<const std::basic_string<char, std::char_traits<char>, pmem::allocator<char> >, std::basic_string<char, std::char_traits<char>, pmem::allocator<char> > > > > >; std::_Require<typename std::allocator_traits<_Alloc>::__construct_helper<_Tp, _Args>::type> = void]’
/opt/rh/devtoolset-7/root/usr/include/c++/7/bits/alloc_traits.h:344:16:   required from ‘static decltype (_S_construct(__a, __p, (forward<_Args>)(std::allocator_traits::construct::__args)...)) std::allocator_traits<_Alloc>::construct(_Alloc&, _Tp*, _Args&& ...) [with _Tp = std::pair<const std::basic_string<char, std::char_traits<char>, pmem::allocator<char> >, std::basic_string<char, std::char_traits<char>, pmem::allocator<char> > >; _Args = {const std::piecewise_construct_t&, std::tuple<std::basic_string<char, std::char_traits<char>, pmem::allocator<char> >&&>, std::tuple<>}; _Alloc = std::scoped_allocator_adaptor<pmem::allocator<std::_Rb_tree_node<std::pair<const std::basic_string<char, std::char_traits<char>, pmem::allocator<char> >, std::basic_string<char, std::char_traits<char>, pmem::allocator<char> > > > > >; decltype (_S_construct(__a, __p, (forward<_Args>)(std::allocator_traits::construct::__args)...)) = <type error>]’
/opt/rh/devtoolset-7/root/usr/include/c++/7/bits/stl_tree.h:626:32:   required from ‘void std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_construct_node(std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_Link_type, _Args&& ...) [with _Args = {const std::piecewise_construct_t&, std::tuple<std::basic_string<char, std::char_traits<char>, pmem::allocator<char> >&&>, std::tuple<>}; _Key = std::basic_string<char, std::char_traits<char>, pmem::allocator<char> >; _Val = std::pair<const std::basic_string<char, std::char_traits<char>, pmem::allocator<char> >, std::basic_string<char, std::char_traits<char>, pmem::allocator<char> > >; _KeyOfValue = std::_Select1st<std::pair<const std::basic_string<char, std::char_traits<char>, pmem::allocator<char> >, std::basic_string<char, std::char_traits<char>, pmem::allocator<char> > > >; _Compare = std::less<std::basic_string<char, std::char_traits<char>, pmem::allocator<char> > >; _Alloc = std::scoped_allocator_adaptor<pmem::allocator<std::pair<const std::basic_string<char, std::char_traits<char>, pmem::allocator<char> >, std::basic_string<char, std::char_traits<char>, pmem::allocator<char> > > > >; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_Link_type = std::_Rb_tree_node<std::pair<const std::basic_string<char, std::char_traits<char>, pmem::allocator<char> >, std::basic_string<char, std::char_traits<char>, pmem::allocator<char> > > >*]’
/opt/rh/devtoolset-7/root/usr/include/c++/7/bits/stl_tree.h:643:21:   required from ‘std::_Rb_tree_node<_Val>* std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_create_node(_Args&& ...) [with _Args = {const std::piecewise_construct_t&, std::tuple<std::basic_string<char, std::char_traits<char>, pmem::allocator<char> >&&>, std::tuple<>}; _Key = std::basic_string<char, std::char_traits<char>, pmem::allocator<char> >; _Val = std::pair<const std::basic_string<char, std::char_traits<char>, pmem::allocator<char> >, std::basic_string<char, std::char_traits<char>, pmem::allocator<char> > >; _KeyOfValue = std::_Select1st<std::pair<const std::basic_string<char, std::char_traits<char>, pmem::allocator<char> >, std::basic_string<char, std::char_traits<char>, pmem::allocator<char> > > >; _Compare = std::less<std::basic_string<char, std::char_traits<char>, pmem::allocator<char> > >; _Alloc = std::scoped_allocator_adaptor<pmem::allocator<std::pair<const std::basic_string<char, std::char_traits<char>, pmem::allocator<char> >, std::basic_string<char, std::char_traits<char>, pmem::allocator<char> > > > >; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_Link_type = std::_Rb_tree_node<std::pair<const std::basic_string<char, std::char_traits<char>, pmem::allocator<char> >, std::basic_string<char, std::char_traits<char>, pmem::allocator<char> > > >*]’
/opt/rh/devtoolset-7/root/usr/include/c++/7/bits/stl_tree.h:2398:33:   required from ‘std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_emplace_hint_unique(std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::const_iterator, _Args&& ...) [with _Args = {const std::piecewise_construct_t&, std::tuple<std::basic_string<char, std::char_traits<char>, pmem::allocator<char> >&&>, std::tuple<>}; _Key = std::basic_string<char, std::char_traits<char>, pmem::allocator<char> >; _Val = std::pair<const std::basic_string<char, std::char_traits<char>, pmem::allocator<char> >, std::basic_string<char, std::char_traits<char>, pmem::allocator<char> > >; _KeyOfValue = std::_Select1st<std::pair<const std::basic_string<char, std::char_traits<char>, pmem::allocator<char> >, std::basic_string<char, std::char_traits<char>, pmem::allocator<char> > > >; _Compare = std::less<std::basic_string<char, std::char_traits<char>, pmem::allocator<char> > >; _Alloc = std::scoped_allocator_adaptor<pmem::allocator<std::pair<const std::basic_string<char, std::char_traits<char>, pmem::allocator<char> >, std::basic_string<char, std::char_traits<char>, pmem::allocator<char> > > > >; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator = std::_Rb_tree_iterator<std::pair<const std::basic_string<char, std::char_traits<char>, pmem::allocator<char> >, std::basic_string<char, std::char_traits<char>, pmem::allocator<char> > > >; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::const_iterator = std::_Rb_tree_const_iterator<std::pair<const std::basic_string<char, std::char_traits<char>, pmem::allocator<char> >, std::basic_string<char, std::char_traits<char>, pmem::allocator<char> > > >]’
/opt/rh/devtoolset-7/root/usr/include/c++/7/bits/stl_map.h:512:8:   required from ‘std::map<_Key, _Tp, _Compare, _Alloc>::mapped_type& std::map<_Key, _Tp, _Compare, _Alloc>::operator[](std::map<_Key, _Tp, _Compare, _Alloc>::key_type&&) [with _Key = std::basic_string<char, std::char_traits<char>, pmem::allocator<char> >; _Tp = std::basic_string<char, std::char_traits<char>, pmem::allocator<char> >; _Compare = std::less<std::basic_string<char, std::char_traits<char>, pmem::allocator<char> > >; _Alloc = std::scoped_allocator_adaptor<pmem::allocator<std::pair<std::basic_string<char, std::char_traits<char>, pmem::allocator<char> >, std::basic_string<char, std::char_traits<char>, pmem::allocator<char> > > > >; std::map<_Key, _Tp, _Compare, _Alloc>::mapped_type = std::basic_string<char, std::char_traits<char>, pmem::allocator<char> >; std::map<_Key, _Tp, _Compare, _Alloc>::key_type = std::basic_string<char, std::char_traits<char>, pmem::allocator<char> >]’
/root/production/pmemkv/pmemkv/src/engines/vmap.cc:90:77:   required from here
/opt/rh/devtoolset-7/root/usr/include/c++/7/bits/uses_allocator.h:90:7: error: static assertion failed: construction with an allocator must be possible if uses_allocator is true
       static_assert(__or_<
       ^~~~~~~~~~~~~
make[2]: *** [CMakeFiles/pmemkv.dir/src/engines/vmap.cc.o] Error 1
make[1]: *** [CMakeFiles/pmemkv.dir/all] Error 2
make: *** [all] Error 2

Reply all
Reply to author
Forward
0 new messages