#12126 closed Bugs (fixed)
Some serialization headers fail to compile independently
| Reported by: | Owned by: | Robert Ramey | |
|---|---|---|---|
| Milestone: | To Be Determined | Component: | serialization |
| Version: | Boost 1.61.0 | Severity: | Problem |
| Keywords: | header, compile, serialization, policy | Cc: |
Description
The Boost header policy requires:
Make sure that a translation unit consisting of just the contents of the header file will compile successfully.
...but several of the serialization headers to not meet this standard, eg:
> clang++ -isystem serialization/include -isystem /opt/include -x c++ -c -o /tmp/a.o serialization/include/boost/serialization/set.hpp
In file included from serialization/include/boost/serialization/set.hpp:26:
serialization/include/boost/serialization/detail/stack_constructor.hpp:50:31: error: no member named 'load_construct_data_adl' in namespace 'boost::serialization'
boost::serialization::load_construct_data_adl(
~~~~~~~~~~~~~~~~~~~~~~^
1 error generated.
> g++ -isystem serialization/include -isystem /opt/include -x c++ -c -o /tmp/a.o serialization/include/boost/serialization/set.hpp In file included from serialization/include/boost/serialization/set.hpp:26:0: serialization/include/boost/serialization/detail/stack_constructor.hpp: In constructor ‘boost::serialization::detail::stack_construct<Archive, T>::stack_construct(Archive&, unsigned int)’: serialization/include/boost/serialization/detail/stack_constructor.hpp:50:9: error: ‘load_construct_data_adl’ is not a member of ‘boost::serialization
Thanks very much for all work on this library.
Change History (6)
comment:1 by , 7 years ago
comment:2 by , 7 years ago
Apologies for the dump, but it seems the best way to answer...
From:
find serialization/include/boost/serialization -iname '*.hpp' | sort | grep detail -v | grep impl -v | xargs -I VAR /bin/tcsh -c "echo VAR; clang++ -isystem serialization/include/ -isystem /tmp/boost -x c++ -c -o /tmp/a.o VAR"
I get:
serialization/include/boost/serialization/access.hpp
serialization/include/boost/serialization/archive_input_unordered_map.hpp
serialization/include/boost/serialization/archive_input_unordered_map.hpp:39:17: error: no member named 'stack_construct' in namespace 'boost::serialization::detail'
detail::stack_construct<Archive, type> t(ar, v);
~~~~~~~~^
serialization/include/boost/serialization/archive_input_unordered_map.hpp:39:33: error: 'Archive' does not refer to a value
detail::stack_construct<Archive, type> t(ar, v);
^
serialization/include/boost/serialization/archive_input_unordered_map.hpp:30:16: note: declared here
template<class Archive, class Container>
^
serialization/include/boost/serialization/archive_input_unordered_map.hpp:40:54: error: use of undeclared identifier 't'
ar >> boost::serialization::make_nvp("item", t.reference());
^
serialization/include/boost/serialization/archive_input_unordered_map.hpp:43:26: error: use of undeclared identifier 't'
s.insert(t.reference());
^
serialization/include/boost/serialization/archive_input_unordered_map.hpp:53:19: error: use of undeclared identifier 't'
& t.reference().second
^
serialization/include/boost/serialization/archive_input_unordered_map.hpp:69:17: error: no member named 'stack_construct' in namespace 'boost::serialization::detail'
detail::stack_construct<Archive, type> t(ar, v);
~~~~~~~~^
serialization/include/boost/serialization/archive_input_unordered_map.hpp:69:33: error: 'Archive' does not refer to a value
detail::stack_construct<Archive, type> t(ar, v);
^
serialization/include/boost/serialization/archive_input_unordered_map.hpp:60:16: note: declared here
template<class Archive, class Container>
^
serialization/include/boost/serialization/archive_input_unordered_map.hpp:70:54: error: use of undeclared identifier 't'
ar >> boost::serialization::make_nvp("item", t.reference());
^
serialization/include/boost/serialization/archive_input_unordered_map.hpp:73:26: error: use of undeclared identifier 't'
s.insert(t.reference());
^
serialization/include/boost/serialization/archive_input_unordered_map.hpp:82:15: error: use of undeclared identifier 't'
& t.reference()
^
10 errors generated.
serialization/include/boost/serialization/archive_input_unordered_set.hpp
serialization/include/boost/serialization/archive_input_unordered_set.hpp:35:9: error: use of undeclared identifier 'detail'
detail::stack_construct<Archive, type> t(ar, v);
^
serialization/include/boost/serialization/archive_input_unordered_set.hpp:35:33: error: 'Archive' does not refer to a value
detail::stack_construct<Archive, type> t(ar, v);
^
serialization/include/boost/serialization/archive_input_unordered_set.hpp:26:16: note: declared here
template<class Archive, class Container>
^
serialization/include/boost/serialization/archive_input_unordered_set.hpp:37:37: error: no member named 'make_nvp' in namespace 'boost::serialization'
ar >> boost::serialization::make_nvp("item", t.reference());
~~~~~~~~~~~~~~~~~~~~~~^
serialization/include/boost/serialization/archive_input_unordered_set.hpp:37:54: error: use of undeclared identifier 't'
ar >> boost::serialization::make_nvp("item", t.reference());
^
serialization/include/boost/serialization/archive_input_unordered_set.hpp:38:9: error: use of undeclared identifier 'std'; did you mean 'stl'?
std::pair<typename Container::const_iterator, bool> result =
^~~
stl
serialization/include/boost/serialization/archive_input_unordered_set.hpp:23:11: note: 'stl' declared here
namespace stl {
^
serialization/include/boost/serialization/archive_input_unordered_set.hpp:38:14: error: no member named 'pair' in namespace 'boost::serialization::stl'
std::pair<typename Container::const_iterator, bool> result =
~~~~~^
serialization/include/boost/serialization/archive_input_unordered_set.hpp:38:53: error: expected '(' for function-style cast or type construction
std::pair<typename Container::const_iterator, bool> result =
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
serialization/include/boost/serialization/archive_input_unordered_set.hpp:44:12: error: use of undeclared identifier 'result'
if(result.second)
^
serialization/include/boost/serialization/archive_input_unordered_set.hpp:45:42: error: use of undeclared identifier 'result'
ar.reset_object_address(& (* result.first), & t.reference());
^
serialization/include/boost/serialization/archive_input_unordered_set.hpp:45:59: error: use of undeclared identifier 't'
ar.reset_object_address(& (* result.first), & t.reference());
^
serialization/include/boost/serialization/archive_input_unordered_set.hpp:59:9: error: use of undeclared identifier 'detail'
detail::stack_construct<Archive, type> t(ar, v);
^
serialization/include/boost/serialization/archive_input_unordered_set.hpp:59:33: error: 'Archive' does not refer to a value
detail::stack_construct<Archive, type> t(ar, v);
^
serialization/include/boost/serialization/archive_input_unordered_set.hpp:50:16: note: declared here
template<class Archive, class Container>
^
serialization/include/boost/serialization/archive_input_unordered_set.hpp:60:37: error: no member named 'make_nvp' in namespace 'boost::serialization'
ar >> boost::serialization::make_nvp("item", t.reference());
~~~~~~~~~~~~~~~~~~~~~~^
serialization/include/boost/serialization/archive_input_unordered_set.hpp:60:54: error: use of undeclared identifier 't'
ar >> boost::serialization::make_nvp("item", t.reference());
^
serialization/include/boost/serialization/archive_input_unordered_set.hpp:65:27: error: use of undeclared identifier 't'
s.emplace(t.reference());
^
serialization/include/boost/serialization/archive_input_unordered_set.hpp:67:49: error: use of undeclared identifier 't'
ar.reset_object_address(& (* result), & t.reference());
^
16 errors generated.
serialization/include/boost/serialization/array.hpp
serialization/include/boost/serialization/assume_abstract.hpp
serialization/include/boost/serialization/base_object.hpp
serialization/include/boost/serialization/binary_object.hpp
serialization/include/boost/serialization/bitset.hpp
serialization/include/boost/serialization/boost_unordered_map.hpp
serialization/include/boost/serialization/boost_unordered_set.hpp
serialization/include/boost/serialization/collection_size_type.hpp
serialization/include/boost/serialization/collections_load_imp.hpp
In file included from serialization/include/boost/serialization/collections_load_imp.hpp:38:
serialization/include/boost/serialization/detail/stack_constructor.hpp:50:31: error: no member named 'load_construct_data_adl' in namespace 'boost::serialization'
boost::serialization::load_construct_data_adl(
~~~~~~~~~~~~~~~~~~~~~~^
1 error generated.
serialization/include/boost/serialization/collections_save_imp.hpp
serialization/include/boost/serialization/collection_traits.hpp
serialization/include/boost/serialization/complex.hpp
serialization/include/boost/serialization/config.hpp
serialization/include/boost/serialization/deque.hpp
serialization/include/boost/serialization/ephemeral.hpp
serialization/include/boost/serialization/ephemeral.hpp:5:9: warning: #pragma once in main file
#pragma once
^
1 warning generated.
serialization/include/boost/serialization/export.hpp
serialization/include/boost/serialization/extended_type_info.hpp
serialization/include/boost/serialization/extended_type_info_no_rtti.hpp
serialization/include/boost/serialization/extended_type_info_typeid.hpp
serialization/include/boost/serialization/factory.hpp
serialization/include/boost/serialization/factory.hpp:37:5: error: use of undeclared identifier 'BOOST_ASSERT'
BOOST_ASSERT(false);
^
1 error generated.
serialization/include/boost/serialization/force_include.hpp
serialization/include/boost/serialization/forward_list.hpp
In file included from serialization/include/boost/serialization/forward_list.hpp:19:
In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/5.2.1/../../../../include/c++/5.2.1/forward_list:35:
/usr/bin/../lib/gcc/x86_64-linux-gnu/5.2.1/../../../../include/c++/5.2.1/bits/c++0x_warning.h:32:2: error: This file requires compiler and library support for the ISO C++ 2011 standard. This support is currently
experimental, and must be enabled with the -std=c++11 or -std=gnu++11 compiler options.
#error This file requires compiler and library support for the \
^
serialization/include/boost/serialization/forward_list.hpp:24:2: error: "not supported for versions earlier than c++11
#error "not supported for versions earlier than c++11
^
serialization/include/boost/serialization/forward_list.hpp:43:16: error: no type named 'forward_list' in namespace 'std'
const std::forward_list<U, Allocator> &t,
~~~~~^
serialization/include/boost/serialization/forward_list.hpp:43:28: error: expected ')'
const std::forward_list<U, Allocator> &t,
^
serialization/include/boost/serialization/forward_list.hpp:41:17: note: to match this '('
inline void save(
^
serialization/include/boost/serialization/forward_list.hpp:46:52: error: use of undeclared identifier 't'
const collection_size_type count(std::distance(t.cbegin(), t.cend()));
^
serialization/include/boost/serialization/forward_list.hpp:46:64: error: use of undeclared identifier 't'
const collection_size_type count(std::distance(t.cbegin(), t.cend()));
^
serialization/include/boost/serialization/forward_list.hpp:49:14: error: no member named 'forward_list' in namespace 'std'
std::forward_list<U, Allocator>
~~~~~^
serialization/include/boost/serialization/forward_list.hpp:49:27: error: 'U' does not refer to a value
std::forward_list<U, Allocator>
^
serialization/include/boost/serialization/forward_list.hpp:40:31: note: declared here
template<class Archive, class U, class Allocator>
^
serialization/include/boost/serialization/forward_list.hpp:50:5: error: expected unqualified-id
>(ar, t, count);
^
serialization/include/boost/serialization/forward_list.hpp:62:23: error: no type named 'forward_list' in namespace 'std'
typename std::forward_list<T, Allocator>::value_type
~~~~~~~~~~~~~~^~~~~~~~~~~~
serialization/include/boost/serialization/forward_list.hpp:62:49: error: no type named 'value_type' in the global namespace; did you mean 'false_type'?
typename std::forward_list<T, Allocator>::value_type
^~~~~~~~~~~~
false_type
/tmp/boost/boost/type_traits/integral_constant.hpp:102:43: note: 'false_type' declared here
typedef integral_constant<bool, false> false_type;
^
serialization/include/boost/serialization/forward_list.hpp:63:6: error: expected unqualified-id
>,
^
serialization/include/boost/serialization/forward_list.hpp:92:10: error: no type named 'forward_list' in namespace 'std'
std::forward_list<U, Allocator> &t,
~~~~~^
serialization/include/boost/serialization/forward_list.hpp:92:22: error: expected ')'
std::forward_list<U, Allocator> &t,
^
serialization/include/boost/serialization/forward_list.hpp:90:17: note: to match this '('
inline void load(
^
serialization/include/boost/serialization/forward_list.hpp:105:35: error: use of undeclared identifier 't'
stl::collection_load_impl(ar, t, count, item_version);
^
serialization/include/boost/serialization/forward_list.hpp:113:10: error: no type named 'forward_list' in namespace 'std'
std::forward_list<U, Allocator> &t,
~~~~~^
serialization/include/boost/serialization/forward_list.hpp:113:22: error: expected ')'
std::forward_list<U, Allocator> &t,
^
serialization/include/boost/serialization/forward_list.hpp:111:22: note: to match this '('
inline void serialize(
^
serialization/include/boost/serialization/forward_list.hpp:116:42: error: use of undeclared identifier 't'
boost::serialization::split_free(ar, t, file_version);
^
serialization/include/boost/serialization/forward_list.hpp:116:45: error: use of undeclared identifier 'file_version'
boost::serialization::split_free(ar, t, file_version);
^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
serialization/include/boost/serialization/hash_collections_load_imp.hpp
serialization/include/boost/serialization/hash_collections_save_imp.hpp
serialization/include/boost/serialization/hash_map.hpp
In file included from serialization/include/boost/serialization/hash_map.hpp:22:
In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/5.2.1/../../../../include/c++/5.2.1/ext/hash_map:60:
/usr/bin/../lib/gcc/x86_64-linux-gnu/5.2.1/../../../../include/c++/5.2.1/backward/backward_warning.h:32:2: warning: This file includes at least one deprecated or antiquated header which may be removed without further notice
at a future date. Please use a non-deprecated interface with equivalent functionality instead. For a listing of replacement headers and interfaces, consult the file backward_warning.h. To disable this warning use
-Wno-deprecated. [-W#warnings]
#warning \
^
serialization/include/boost/serialization/hash_map.hpp:44:17: error: no member named 'stack_construct' in namespace 'boost::serialization::detail'
detail::stack_construct<Archive, type> t(ar, v);
~~~~~~~~^
serialization/include/boost/serialization/hash_map.hpp:44:33: error: 'Archive' does not refer to a value
detail::stack_construct<Archive, type> t(ar, v);
^
serialization/include/boost/serialization/hash_map.hpp:35:16: note: declared here
template<class Archive, class Container>
^
serialization/include/boost/serialization/hash_map.hpp:46:54: error: use of undeclared identifier 't'
ar >> boost::serialization::make_nvp("item", t.reference());
^
serialization/include/boost/serialization/hash_map.hpp:48:22: error: use of undeclared identifier 't'
s.insert(t.reference());
^
serialization/include/boost/serialization/hash_map.hpp:55:19: error: use of undeclared identifier 't'
& t.reference().second
^
serialization/include/boost/serialization/hash_map.hpp:71:17: error: no member named 'stack_construct' in namespace 'boost::serialization::detail'
detail::stack_construct<Archive, type> t(ar, v);
~~~~~~~~^
serialization/include/boost/serialization/hash_map.hpp:71:33: error: 'Archive' does not refer to a value
detail::stack_construct<Archive, type> t(ar, v);
^
serialization/include/boost/serialization/hash_map.hpp:62:16: note: declared here
template<class Archive, class Container>
^
serialization/include/boost/serialization/hash_map.hpp:73:54: error: use of undeclared identifier 't'
ar >> boost::serialization::make_nvp("item", t.reference());
^
serialization/include/boost/serialization/hash_map.hpp:75:24: error: use of undeclared identifier 't'
= s.insert(t.reference());
^
serialization/include/boost/serialization/hash_map.hpp:81:15: error: use of undeclared identifier 't'
& t.reference()
^
1 warning and 10 errors generated.
serialization/include/boost/serialization/hash_set.hpp
In file included from serialization/include/boost/serialization/hash_set.hpp:21:
In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/5.2.1/../../../../include/c++/5.2.1/ext/hash_set:60:
/usr/bin/../lib/gcc/x86_64-linux-gnu/5.2.1/../../../../include/c++/5.2.1/backward/backward_warning.h:32:2: warning: This file includes at least one deprecated or antiquated header which may be removed without further notice
at a future date. Please use a non-deprecated interface with equivalent functionality instead. For a listing of replacement headers and interfaces, consult the file backward_warning.h. To disable this warning use
-Wno-deprecated. [-W#warnings]
#warning \
^
serialization/include/boost/serialization/hash_set.hpp:42:17: error: no member named 'stack_construct' in namespace 'boost::serialization::detail'
detail::stack_construct<Archive, type> t(ar, v);
~~~~~~~~^
serialization/include/boost/serialization/hash_set.hpp:42:33: error: 'Archive' does not refer to a value
detail::stack_construct<Archive, type> t(ar, v);
^
serialization/include/boost/serialization/hash_set.hpp:33:16: note: declared here
template<class Archive, class Container>
^
serialization/include/boost/serialization/hash_set.hpp:44:54: error: use of undeclared identifier 't'
ar >> boost::serialization::make_nvp("item", t.reference());
^
serialization/include/boost/serialization/hash_set.hpp:46:22: error: use of undeclared identifier 't'
s.insert(t.reference());
^
serialization/include/boost/serialization/hash_set.hpp:48:59: error: use of undeclared identifier 't'
ar.reset_object_address(& (* result.first), & t.reference());
^
serialization/include/boost/serialization/hash_set.hpp:62:17: error: no member named 'stack_construct' in namespace 'boost::serialization::detail'
detail::stack_construct<Archive, type> t(ar, v);
~~~~~~~~^
serialization/include/boost/serialization/hash_set.hpp:62:33: error: 'Archive' does not refer to a value
detail::stack_construct<Archive, type> t(ar, v);
^
serialization/include/boost/serialization/hash_set.hpp:53:16: note: declared here
template<class Archive, class Container>
^
serialization/include/boost/serialization/hash_set.hpp:64:54: error: use of undeclared identifier 't'
ar >> boost::serialization::make_nvp("item", t.reference());
^
serialization/include/boost/serialization/hash_set.hpp:66:24: error: use of undeclared identifier 't'
= s.insert(t.reference());
^
serialization/include/boost/serialization/hash_set.hpp:67:49: error: use of undeclared identifier 't'
ar.reset_object_address(& (* result), & t.reference());
^
1 warning and 10 errors generated.
serialization/include/boost/serialization/is_bitwise_serializable.hpp
serialization/include/boost/serialization/item_version_type.hpp
serialization/include/boost/serialization/level_enum.hpp
serialization/include/boost/serialization/level.hpp
serialization/include/boost/serialization/list.hpp
serialization/include/boost/serialization/map.hpp
serialization/include/boost/serialization/nvp.hpp
serialization/include/boost/serialization/optional.hpp
serialization/include/boost/serialization/priority_queue.hpp
serialization/include/boost/serialization/priority_queue.hpp:57:22: error: use of undeclared identifier 'mpl'
typedef typename mpl::eval_if<
^
serialization/include/boost/serialization/priority_queue.hpp:57:27: error: expected a qualified name after 'typename'
typedef typename mpl::eval_if<
^
serialization/include/boost/serialization/priority_queue.hpp:57:34: error: expected ';' at end of declaration
typedef typename mpl::eval_if<
^
;
serialization/include/boost/serialization/priority_queue.hpp:62:17: error: unknown type name 'typex'
static_cast<typex &>(t)(ar, file_version);
^
4 errors generated.
serialization/include/boost/serialization/queue.hpp
serialization/include/boost/serialization/queue.hpp:57:22: error: use of undeclared identifier 'mpl'
typedef typename mpl::eval_if<
^
serialization/include/boost/serialization/queue.hpp:57:27: error: expected a qualified name after 'typename'
typedef typename mpl::eval_if<
^
serialization/include/boost/serialization/queue.hpp:57:34: error: expected ';' at end of declaration
typedef typename mpl::eval_if<
^
;
serialization/include/boost/serialization/queue.hpp:62:17: error: unknown type name 'typex'
static_cast<typex &>(t)(ar, file_version);
^
4 errors generated.
serialization/include/boost/serialization/scoped_ptr.hpp
serialization/include/boost/serialization/serialization.hpp
serialization/include/boost/serialization/set.hpp
In file included from serialization/include/boost/serialization/set.hpp:26:
serialization/include/boost/serialization/detail/stack_constructor.hpp:50:31: error: no member named 'load_construct_data_adl' in namespace 'boost::serialization'
boost::serialization::load_construct_data_adl(
~~~~~~~~~~~~~~~~~~~~~~^
1 error generated.
serialization/include/boost/serialization/shared_ptr_132.hpp
serialization/include/boost/serialization/shared_ptr_helper.hpp
serialization/include/boost/serialization/shared_ptr.hpp
serialization/include/boost/serialization/singleton.hpp
serialization/include/boost/serialization/slist.hpp
serialization/include/boost/serialization/smart_cast.hpp
serialization/include/boost/serialization/split_free.hpp
serialization/include/boost/serialization/split_member.hpp
serialization/include/boost/serialization/stack.hpp
serialization/include/boost/serialization/stack.hpp:57:22: error: use of undeclared identifier 'mpl'
typedef typename mpl::eval_if<
^
serialization/include/boost/serialization/stack.hpp:57:27: error: expected a qualified name after 'typename'
typedef typename mpl::eval_if<
^
serialization/include/boost/serialization/stack.hpp:57:34: error: expected ';' at end of declaration
typedef typename mpl::eval_if<
^
;
serialization/include/boost/serialization/stack.hpp:62:17: error: unknown type name 'typex'
static_cast<typex &>(t)(ar, file_version);
^
4 errors generated.
serialization/include/boost/serialization/state_saver.hpp
serialization/include/boost/serialization/static_warning.hpp
serialization/include/boost/serialization/string.hpp
serialization/include/boost/serialization/strong_typedef.hpp
serialization/include/boost/serialization/throw_exception.hpp
serialization/include/boost/serialization/tracking_enum.hpp
serialization/include/boost/serialization/tracking.hpp
serialization/include/boost/serialization/traits.hpp
serialization/include/boost/serialization/unique_ptr.hpp
serialization/include/boost/serialization/unique_ptr.hpp:32:16: error: no type named 'unique_ptr' in namespace 'std'
const std::unique_ptr< T > &t,
~~~~~^
serialization/include/boost/serialization/unique_ptr.hpp:32:26: error: expected ')'
const std::unique_ptr< T > &t,
^
serialization/include/boost/serialization/unique_ptr.hpp:30:17: note: to match this '('
inline void save(
^
serialization/include/boost/serialization/unique_ptr.hpp:37:26: error: use of undeclared identifier 't'
const T * const tx = t.get();
^
serialization/include/boost/serialization/unique_ptr.hpp:44:10: error: no type named 'unique_ptr' in namespace 'std'
std::unique_ptr< T > &t,
~~~~~^
serialization/include/boost/serialization/unique_ptr.hpp:44:20: error: expected ')'
std::unique_ptr< T > &t,
^
serialization/include/boost/serialization/unique_ptr.hpp:42:17: note: to match this '('
inline void load(
^
serialization/include/boost/serialization/unique_ptr.hpp:50:5: error: use of undeclared identifier 't'
t.reset(tx);
^
serialization/include/boost/serialization/unique_ptr.hpp:58:10: error: no type named 'unique_ptr' in namespace 'std'
std::unique_ptr< T > &t,
~~~~~^
serialization/include/boost/serialization/unique_ptr.hpp:58:20: error: expected ')'
std::unique_ptr< T > &t,
^
serialization/include/boost/serialization/unique_ptr.hpp:56:22: note: to match this '('
inline void serialize(
^
serialization/include/boost/serialization/unique_ptr.hpp:61:42: error: use of undeclared identifier 't'
boost::serialization::split_free(ar, t, file_version);
^
serialization/include/boost/serialization/unique_ptr.hpp:61:45: error: use of undeclared identifier 'file_version'
boost::serialization::split_free(ar, t, file_version);
^
10 errors generated.
serialization/include/boost/serialization/unordered_collections_load_imp.hpp
In file included from serialization/include/boost/serialization/unordered_collections_load_imp.hpp:36:
serialization/include/boost/serialization/detail/stack_constructor.hpp:50:31: error: no member named 'load_construct_data_adl' in namespace 'boost::serialization'
boost::serialization::load_construct_data_adl(
~~~~~~~~~~~~~~~~~~~~~~^
1 error generated.
serialization/include/boost/serialization/unordered_collections_save_imp.hpp
serialization/include/boost/serialization/unordered_map.hpp
In file included from serialization/include/boost/serialization/unordered_map.hpp:23:
In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/5.2.1/../../../../include/c++/5.2.1/unordered_map:35:
/usr/bin/../lib/gcc/x86_64-linux-gnu/5.2.1/../../../../include/c++/5.2.1/bits/c++0x_warning.h:32:2: error: This file requires compiler and library support for the ISO C++ 2011 standard. This support is currently
experimental, and must be enabled with the -std=c++11 or -std=gnu++11 compiler options.
#error This file requires compiler and library support for the \
^
serialization/include/boost/serialization/unordered_map.hpp:43:16: error: no type named 'unordered_map' in namespace 'std'
const std::unordered_map<Key, HashFcn, EqualKey, Allocator> &t,
~~~~~^
serialization/include/boost/serialization/unordered_map.hpp:43:29: error: expected ')'
const std::unordered_map<Key, HashFcn, EqualKey, Allocator> &t,
^
serialization/include/boost/serialization/unordered_map.hpp:41:17: note: to match this '('
inline void save(
^
serialization/include/boost/serialization/unordered_map.hpp:48:14: error: no member named 'unordered_map' in namespace 'std'
std::unordered_map<Key, HashFcn, EqualKey, Allocator>
~~~~~^
serialization/include/boost/serialization/unordered_map.hpp:48:28: error: 'Key' does not refer to a value
std::unordered_map<Key, HashFcn, EqualKey, Allocator>
^
serialization/include/boost/serialization/unordered_map.hpp:36:11: note: declared here
class Key,
^
serialization/include/boost/serialization/unordered_map.hpp:49:5: error: expected unqualified-id
>(ar, t);
^
serialization/include/boost/serialization/unordered_map.hpp:61:10: error: no type named 'unordered_map' in namespace 'std'
std::unordered_map<Key, HashFcn, EqualKey, Allocator> &t,
~~~~~^
serialization/include/boost/serialization/unordered_map.hpp:61:23: error: expected ')'
std::unordered_map<Key, HashFcn, EqualKey, Allocator> &t,
^
serialization/include/boost/serialization/unordered_map.hpp:59:17: note: to match this '('
inline void load(
^
serialization/include/boost/serialization/unordered_map.hpp:66:14: error: no member named 'unordered_map' in namespace 'std'
std::unordered_map<Key, HashFcn, EqualKey, Allocator>,
~~~~~^
serialization/include/boost/serialization/unordered_map.hpp:66:28: error: 'Key' does not refer to a value
std::unordered_map<Key, HashFcn, EqualKey, Allocator>,
^
serialization/include/boost/serialization/unordered_map.hpp:54:11: note: declared here
class Key,
^
serialization/include/boost/serialization/unordered_map.hpp:66:62: error: expected unqualified-id
std::unordered_map<Key, HashFcn, EqualKey, Allocator>,
^
serialization/include/boost/serialization/unordered_map.hpp:85:10: error: no type named 'unordered_map' in namespace 'std'
std::unordered_map<Key, HashFcn, EqualKey, Allocator> &t,
~~~~~^
serialization/include/boost/serialization/unordered_map.hpp:85:23: error: expected ')'
std::unordered_map<Key, HashFcn, EqualKey, Allocator> &t,
^
serialization/include/boost/serialization/unordered_map.hpp:83:22: note: to match this '('
inline void serialize(
^
serialization/include/boost/serialization/unordered_map.hpp:88:42: error: use of undeclared identifier 't'
boost::serialization::split_free(ar, t, file_version);
^
serialization/include/boost/serialization/unordered_map.hpp:88:45: error: use of undeclared identifier 'file_version'
boost::serialization::split_free(ar, t, file_version);
^
serialization/include/boost/serialization/unordered_map.hpp:101:16: error: no type named 'unordered_multimap' in namespace 'std'
const std::unordered_multimap<
~~~~~^
serialization/include/boost/serialization/unordered_map.hpp:101:34: error: expected ')'
const std::unordered_multimap<
^
serialization/include/boost/serialization/unordered_map.hpp:99:17: note: to match this '('
inline void save(
^
serialization/include/boost/serialization/unordered_map.hpp:108:14: error: no member named 'unordered_multimap' in namespace 'std'
std::unordered_multimap<Key, HashFcn, EqualKey, Allocator>
~~~~~^
serialization/include/boost/serialization/unordered_map.hpp:108:33: error: 'Key' does not refer to a value
std::unordered_multimap<Key, HashFcn, EqualKey, Allocator>
^
serialization/include/boost/serialization/unordered_map.hpp:94:11: note: declared here
class Key,
^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
serialization/include/boost/serialization/unordered_set.hpp
In file included from serialization/include/boost/serialization/unordered_set.hpp:22:
In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/5.2.1/../../../../include/c++/5.2.1/unordered_set:35:
/usr/bin/../lib/gcc/x86_64-linux-gnu/5.2.1/../../../../include/c++/5.2.1/bits/c++0x_warning.h:32:2: error: This file requires compiler and library support for the ISO C++ 2011 standard. This support is currently
experimental, and must be enabled with the -std=c++11 or -std=gnu++11 compiler options.
#error This file requires compiler and library support for the \
^
serialization/include/boost/serialization/unordered_set.hpp:41:16: error: no type named 'unordered_set' in namespace 'std'
const std::unordered_set<
~~~~~^
serialization/include/boost/serialization/unordered_set.hpp:41:29: error: expected ')'
const std::unordered_set<
^
serialization/include/boost/serialization/unordered_set.hpp:39:17: note: to match this '('
inline void save(
^
serialization/include/boost/serialization/unordered_set.hpp:48:14: error: no member named 'unordered_set' in namespace 'std'
std::unordered_set<Key, HashFcn, EqualKey, Allocator>
~~~~~^
serialization/include/boost/serialization/unordered_set.hpp:48:28: error: 'Key' does not refer to a value
std::unordered_set<Key, HashFcn, EqualKey, Allocator>
^
serialization/include/boost/serialization/unordered_set.hpp:34:11: note: declared here
class Key,
^
serialization/include/boost/serialization/unordered_set.hpp:49:5: error: expected unqualified-id
>(ar, t);
^
serialization/include/boost/serialization/unordered_set.hpp:61:10: error: no type named 'unordered_set' in namespace 'std'
std::unordered_set<
~~~~~^
serialization/include/boost/serialization/unordered_set.hpp:61:23: error: expected ')'
std::unordered_set<
^
serialization/include/boost/serialization/unordered_set.hpp:59:17: note: to match this '('
inline void load(
^
serialization/include/boost/serialization/unordered_set.hpp:68:14: error: no member named 'unordered_set' in namespace 'std'
std::unordered_set<Key, HashFcn, EqualKey, Allocator>,
~~~~~^
serialization/include/boost/serialization/unordered_set.hpp:68:28: error: 'Key' does not refer to a value
std::unordered_set<Key, HashFcn, EqualKey, Allocator>,
^
serialization/include/boost/serialization/unordered_set.hpp:54:11: note: declared here
class Key,
^
serialization/include/boost/serialization/unordered_set.hpp:68:62: error: expected unqualified-id
std::unordered_set<Key, HashFcn, EqualKey, Allocator>,
^
serialization/include/boost/serialization/unordered_set.hpp:89:10: error: no type named 'unordered_set' in namespace 'std'
std::unordered_set<
~~~~~^
serialization/include/boost/serialization/unordered_set.hpp:89:23: error: expected ')'
std::unordered_set<
^
serialization/include/boost/serialization/unordered_set.hpp:87:22: note: to match this '('
inline void serialize(
^
serialization/include/boost/serialization/unordered_set.hpp:94:20: error: use of undeclared identifier 't'
split_free(ar, t, file_version);
^
serialization/include/boost/serialization/unordered_set.hpp:94:23: error: use of undeclared identifier 'file_version'
split_free(ar, t, file_version);
^
serialization/include/boost/serialization/unordered_set.hpp:107:16: error: no type named 'unordered_multiset' in namespace 'std'
const std::unordered_multiset<
~~~~~^
serialization/include/boost/serialization/unordered_set.hpp:107:34: error: expected ')'
const std::unordered_multiset<
^
serialization/include/boost/serialization/unordered_set.hpp:105:17: note: to match this '('
inline void save(
^
serialization/include/boost/serialization/unordered_set.hpp:114:14: error: no member named 'unordered_multiset' in namespace 'std'
std::unordered_multiset<Key, HashFcn, EqualKey, Allocator>
~~~~~^
serialization/include/boost/serialization/unordered_set.hpp:114:33: error: 'Key' does not refer to a value
std::unordered_multiset<Key, HashFcn, EqualKey, Allocator>
^
serialization/include/boost/serialization/unordered_set.hpp:100:11: note: declared here
class Key,
^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
serialization/include/boost/serialization/utility.hpp
serialization/include/boost/serialization/valarray.hpp
serialization/include/boost/serialization/variant.hpp
serialization/include/boost/serialization/vector_135.hpp
serialization/include/boost/serialization/vector.hpp
serialization/include/boost/serialization/version.hpp
serialization/include/boost/serialization/void_cast_fwd.hpp
serialization/include/boost/serialization/void_cast.hpp
serialization/include/boost/serialization/weak_ptr.hpp
serialization/include/boost/serialization/wrapper.hpp
comment:3 by , 6 years ago
| Resolution: | → fixed |
|---|---|
| Status: | new → closed |
OK - I'm fixing this on my machine - I'll check in to develop shortly
comment:4 by , 6 years ago
Yep - I'm now seeing them all compile cleanly under -std=c++11 except hash_map.hpp and hash_set.hpp which have deprecated warnings before any failures (perhaps time to remove these if they can't be made to compile cleanly by themselves?).
Thanks very much for addressing this quickly
comment:5 by , 6 years ago
Is there a workaround for this? It appears that boost/serialization/set.hpp is completely broken on Boost 1.58, the version that's the default on Ubuntu 16.04 LTS.
comment:6 by , 6 years ago
Mike, for me a workaround was to include boost/serialization/serialization.hpp just before including boost/serialization/set.hpp , this did the trick.

set.hp - right
what are the other headers and what are they missing? In other words, what's the fix?