Subject: [Boost-bugs] [Boost C++ Libraries] #9253: Support for serializing std::u16string
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2013-10-15 19:45:50
#9253: Support for serializing std::u16string
------------------------------+---------------------------
Reporter: learner.cpp@⦠| Owner: ramey
Type: Feature Requests | Status: new
Milestone: To Be Determined | Component: serialization
Version: Boost 1.55.0 | Severity: Problem
Keywords: |
------------------------------+---------------------------
Hi:
I would like to use the boot serialization library with the C++11
std::u16string type. When I use it with a text archive I get the following
error. Could you elaborate on the plans by when we will be having support
for this. For now, we can get workaround the issue by writing our own non-
intrusive "load" and "save" methods for u16string, but would prefer built
in serialization support for it like std::string.
Please find below the stack trace for the error.
Thanks
boost/include/boost/serialization/access.hpp: In instantiation of 'static
void boost::serialization::access::serialize(Archive&, T&, unsigned int)
[with Archive = boost::archive::text_oarchive; T =
std::basic_string<char16_t>]':
boost/include/boost/serialization/serialization.hpp:102:5: required from
'void boost::serialization::serialize(Archive&, T&, unsigned int) [with
Archive = boost::archive::text_oarchive; T = std::basic_string<char16_t>]'
boost/include/boost/serialization/serialization.hpp:161:9: required from
'void boost::serialization::serialize_adl(Archive&, T&, unsigned int)
[with Archive = boost::archive::text_oarchive; T =
std::basic_string<char16_t>]'
boost/include/boost/archive/detail/oserializer.hpp:148:5: required from
'void boost::archive::detail::oserializer<Archive,
T>::save_object_data(boost::archive::detail::basic_oarchive&, const void*)
const [with Archive = boost::archive::text_oarchive; T =
std::basic_string<char16_t>]'
boost/include/boost/archive/detail/oserializer.hpp:101:1: required from
'class boost::archive::detail::oserializer<boost::archive::text_oarchive,
std::basic_string<char16_t> >'
boost/include/boost/archive/detail/oserializer.hpp:253:13: required from
'static void
boost::archive::detail::save_non_pointer_type<Archive>::save_standard::invoke(Archive&,
const T&) [with T = std::basic_string<char16_t>; Archive =
boost::archive::text_oarchive]'
boost/include/boost/archive/detail/oserializer.hpp:308:9: required from
'static void
boost::archive::detail::save_non_pointer_type<Archive>::invoke(Archive&,
const T&) [with T = std::basic_string<char16_t>; Archive =
boost::archive::text_oarchive]'
boost/include/boost/archive/detail/oserializer.hpp:314:9: required from
'static void
boost::archive::detail::save_non_pointer_type<Archive>::invoke(Archive&,
T&) [with T = std::basic_string<char16_t>; Archive =
boost::archive::text_oarchive]'
boost/include/boost/archive/detail/oserializer.hpp:525:5: required from
'void boost::archive::save(Archive&, T&) [with Archive =
boost::archive::text_oarchive; T = std::basic_string<char16_t>]'
boost/include/boost/archive/detail/common_oarchive.hpp:69:9: required
from 'void
boost::archive::detail::common_oarchive<Archive>::save_override(T&, int)
[with T = std::basic_string<char16_t>; Archive =
boost::archive::text_oarchive]'
boost/include/boost/archive/basic_text_oarchive.hpp:113:9: required from
'void boost::archive::basic_text_oarchive<Archive>::save_override(T&, int)
[with T = std::basic_string<char16_t>; Archive =
boost::archive::text_oarchive]'
boost/include/boost/archive/detail/interface_oarchive.hpp:63:9: required
from 'Archive&
boost::archive::detail::interface_oarchive<Archive>::operator<<(T&) [with
T = std::basic_string<char16_t>; Archive = boost::archive::text_oarchive]'
main.cpp:39:15: required from here
boost/include/boost/serialization/access.hpp:151:9: error: 'class
std::basic_string<char16_t>' has no member named 'serialize'
boost/include/boost/serialization/access.hpp: In instantiation of 'static
void boost::serialization::access::serialize(Archive&, T&, unsigned int)
[with Archive = boost::archive::text_iarchive; T =
std::basic_string<char16_t>]':
boost/include/boost/serialization/serialization.hpp:102:5: required from
'void boost::serialization::serialize(Archive&, T&, unsigned int) [with
Archive = boost::archive::text_iarchive; T = std::basic_string<char16_t>]'
boost/include/boost/serialization/serialization.hpp:161:9: required from
'void boost::serialization::serialize_adl(Archive&, T&, unsigned int)
[with Archive = boost::archive::text_iarchive; T =
std::basic_string<char16_t>]'
boost/include/boost/archive/detail/iserializer.hpp:188:5: required from
'void boost::archive::detail::iserializer<Archive,
T>::load_object_data(boost::archive::detail::basic_iarchive&, void*,
unsigned int) const [with Archive = boost::archive::text_iarchive; T =
std::basic_string<char16_t>]'
boost/include/boost/archive/detail/iserializer.hpp:120:1: required from
'class boost::archive::detail::iserializer<boost::archive::text_iarchive,
std::basic_string<char16_t> >'
boost/include/boost/archive/detail/iserializer.hpp:387:13: required from
'static void
boost::archive::detail::load_non_pointer_type<Archive>::load_standard::invoke(Archive&,
const T&) [with T = std::basic_string<char16_t>; Archive =
boost::archive::text_iarchive]'
boost/include/boost/archive/detail/iserializer.hpp:439:9: required from
'static void
boost::archive::detail::load_non_pointer_type<Archive>::invoke(Archive&,
T&) [with T = std::basic_string<char16_t>; Archive =
boost::archive::text_iarchive]'
boost/include/boost/archive/detail/iserializer.hpp:592:5: required from
'void boost::archive::load(Archive&, T&) [with Archive =
boost::archive::text_iarchive; T = std::basic_string<char16_t>]'
boost/include/boost/archive/detail/common_iarchive.hpp:66:9: required
from 'void
boost::archive::detail::common_iarchive<Archive>::load_override(T&, int)
[with T = std::basic_string<char16_t>; Archive =
boost::archive::text_iarchive]'
boost/include/boost/archive/basic_text_iarchive.hpp:98:9: required from
'void boost::archive::basic_text_iarchive<Archive>::load_override(T&, int)
[with T = std::basic_string<char16_t>; Archive =
boost::archive::text_iarchive]'
boost/include/boost/archive/text_iarchive.hpp:115:9: required from 'void
boost::archive::text_iarchive_impl<Archive>::load_override(T&, int) [with
T = std::basic_string<char16_t>; Archive = boost::archive::text_iarchive]'
boost/include/boost/archive/detail/interface_iarchive.hpp:60:9: required
from 'Archive&
boost::archive::detail::interface_iarchive<Archive>::operator>>(T&) [with
T = std::basic_string<char16_t>; Archive = boost::archive::text_iarchive]'
main.cpp:55:15: required from here
boost/include/boost/serialization/access.hpp:151:9: error: 'class
std::basic_string<char16_t>' has no member named 'serialize'
Thanks
-- Ticket URL: <https://svn.boost.org/trac/boost/ticket/9253> Boost C++ Libraries <http://www.boost.org/> Boost provides free peer-reviewed portable C++ source libraries.
This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:14 UTC