Comments (4)
Can you show some of the compilation errors?
I just pushed a fix for compilation against boost 1.62 (or more accurately the boost develop branch.) This was not about ctype though.
from trial.protocol.
Hi,
sure,
for ctype:
In file included from /nvme/momec/c1/b/l/x86-64/c/3.9.1/A/RelW/ext/trial_protocol/test/json/encoder_suite.cpp:11:
In file included from /usr/bin/../include/c++/v1/sstream:174:
In file included from /usr/bin/../include/c++/v1/ostream:138:
/usr/bin/../include/c++/v1/ios:739:50: error: implicit instantiation of undefined template 'std::__1::ctype'
return use_facet<ctype<char_type> >(getloc()).widen(__c);
^
/usr/bin/../include/c++/v1/ios:748:19: note: in instantiation of member function 'std::__1::basic_ios<unsigned char,
std::__1::char_traits >::widen' requested here
_fill = widen(' ');
^
/usr/bin/../include/c++/v1/ostream:762:39: note: in instantiation of member function 'std::__1::basic_ios<unsigned char,
std::__1::char_traits >::fill' requested here
__os.fill()).failed())
^
/usr/bin/../include/c++/v1/ostream:780:19: note: in instantiation of function template specialization
'std::__1::__put_character_sequence<unsigned char, std::__1::char_traits >' requested here
return _VSTD::__put_character_sequence(__os, &__c, 1);
^
/nvme/momec/c1/b/l/x86-64/c/3.9.1/A/RelW/ext/trial_protocol/include/trial/protocol/buffer/ostream.hpp:43:17: note: in instantiation of
function template specialization 'std::__1::operator<<<unsigned char, std::__1::char_traits >' requested here
content << value;
^
/nvme/momec/c1/b/l/x86-64/c/3.9.1/A/RelW/ext/trial_protocol/include/trial/protocol/buffer/ostream.hpp:33:5: note: in instantiation of
member function 'trial::protocol::buffer::basic_ostream<unsigned char, trial::protocol::buffer::base >::write'
requested here
basic_ostream(std::basic_ostream& stream) : content(stream) {}
^
/nvme/momec/c1/b/l/x86-64/c/3.9.1/A/RelW/ext/trial_protocol/include/trial/protocol/json/detail/encoder.ipp:205:18: note: in instantiation
of member function 'trial::protocol::buffer::basic_ostream<unsigned char, trial::protocol::buffer::base
>::basic_ostream' requested here
: buffer(new typename buffer::traits::buffer_type(output))
^
/nvme/momec/c1/b/l/x86-64/c/3.9.1/A/RelW/ext/trial_protocol/test/json/encoder_suite.cpp:378:27: note: in instantiation of function template
specialization 'trial::protocol::json::detail::basic_encoder::basic_encoder<std::__1::basic_ostringstream<unsigned
char, std::__1::char_traits, std::__1::allocator > >' requested here
unsigned_encoder_type encoder(buffer);
^
/usr/bin/../include/c++/v1/__locale:429:53: note: template is declared here
template class _LIBCPP_TYPE_VIS_ONLY ctype;
^
/usr/bin/../include/c++/v1/__locale:188:54: error: implicit instantiation of undefined template 'std::__1::ctype'
return static_cast<const _Facet&>(*__l.use_facet(_Facet::id));
^
/usr/bin/../include/c++/v1/ios:739:12: note: in instantiation of function template specialization
'std::__1::use_facet<std::__1::ctype >' requested here
return use_facet<ctype<char_type> >(getloc()).widen(__c);
^
/usr/bin/../include/c++/v1/ios:748:19: note: in instantiation of member function 'std::__1::basic_ios<unsigned char,
std::__1::char_traits >::widen' requested here
_fill = widen(' ');
^
/usr/bin/../include/c++/v1/ostream:762:39: note: in instantiation of member function 'std::__1::basic_ios<unsigned char,
std::__1::char_traits >::fill' requested here
__os.fill()).failed())
^
/usr/bin/../include/c++/v1/ostream:780:19: note: in instantiation of function template specialization
'std::__1::__put_character_sequence<unsigned char, std::__1::char_traits >' requested here
return _VSTD::__put_character_sequence(__os, &__c, 1);
^
/nvme/momec/c1/b/l/x86-64/c/3.9.1/A/RelW/ext/trial_protocol/include/trial/protocol/buffer/ostream.hpp:43:17: note: in instantiation of
function template specialization 'std::__1::operator<<<unsigned char, std::__1::char_traits >' requested here
content << value;
^
/nvme/momec/c1/b/l/x86-64/c/3.9.1/A/RelW/ext/trial_protocol/include/trial/protocol/buffer/ostream.hpp:33:5: note: in instantiation of
member function 'trial::protocol::buffer::basic_ostream<unsigned char, trial::protocol::buffer::base >::write'
requested here
basic_ostream(std::basic_ostream& stream) : content(stream) {}
^
/nvme/momec/c1/b/l/x86-64/c/3.9.1/A/RelW/ext/trial_protocol/include/trial/protocol/json/detail/encoder.ipp:205:18: note: in instantiation
of member function 'trial::protocol::buffer::basic_ostream<unsigned char, trial::protocol::buffer::base
>::basic_ostream' requested here
: buffer(new typename buffer::traits::buffer_type(output))
^
/nvme/momec/c1/b/l/x86-64/c/3.9.1/A/RelW/ext/trial_protocol/test/json/encoder_suite.cpp:378:27: note: in instantiation of function template
specialization 'trial::protocol::json::detail::basic_encoder::basic_encoder<std::__1::basic_ostringstream<unsigned
char, std::__1::char_traits, std::__1::allocator > >' requested here
unsigned_encoder_type encoder(buffer);
^
/usr/bin/../include/c++/v1/__locale:429:53: note: template is declared here
template class _LIBCPP_TYPE_VIS_ONLY ctype;
for json vector :
In file included from /nvme/momec/c1/b/l/x86-64/c/3.9.1/A/RelW/ext/trial_protocol/test/json/oarchive_suite.cpp:14:
In file included from /nvme/momec/c1/b/l/x86-64/c/3.9.1/A/RelW/ext/trial_protocol/include/trial/protocol/json/serialization.hpp:14:
In file included from /nvme/momec/c1/b/l/x86-64/c/3.9.1/A/RelW/ext/trial_protocol/include/trial/protocol/json/serialization/serialization.hpp:16:
In file included from /nvme/momec/c1/b/l/x86-64/c/3.9.1/A/RelW/ext/trial_protocol/include/trial/protocol/json/serialization/oarchive.hpp:15:
In file included from /nvme/momec/c1/b/l/x86-64/c/3.9.1/A/RelW/usr/include/boost/archive/detail/common_oarchive.hpp:22:
In file included from /nvme/momec/c1/b/l/x86-64/c/3.9.1/A/RelW/usr/include/boost/archive/detail/interface_oarchive.hpp:23:
/nvme/momec/c1/b/l/x86-64/c/3.9.1/A/RelW/usr/include/boost/archive/detail/oserializer.hpp:255:17: error: no viable conversion from
'__bit_iterator<std::__1::vector<bool, std::__1::allocator >, true>' to 'const void *'
& t,
^~~
/nvme/momec/c1/b/l/x86-64/c/3.9.1/A/RelW/usr/include/boost/archive/detail/oserializer.hpp:309:16: note: in instantiation of function
template specialization 'boost::archive::detail::save_non_pointer_type<trial::protocol::json::basic_oarchive
>::save_standard::invoke<std::__1::__bit_const_reference<std::__1::vector<bool, std::__1::allocator > > >' requested here
typex::invoke(ar, t);
^
/nvme/momec/c1/b/l/x86-64/c/3.9.1/A/RelW/usr/include/boost/archive/detail/oserializer.hpp:526:12: note: in instantiation of function
template specialization 'boost::archive::detail::save_non_pointer_type<trial::protocol::json::basic_oarchive
>::invoke<std::__1::__bit_const_reference<std::__1::vector<bool, std::__1::allocator > > >' requested here
typex::invoke(ar, t);
^
/nvme/momec/c1/b/l/x86-64/c/3.9.1/A/RelW/ext/trial_protocol/include/trial/protocol/json/serialization/detail/oarchive.ipp:48:21: note: in
instantiation of function template specialization 'boost::archive::save<trial::protocol::json::basic_oarchive, const
std::__1::__bit_const_reference<std::__1::vector<bool, std::__1::allocator > > >' requested here
boost::archive::save(*this, data);
^
/nvme/momec/c1/b/l/x86-64/c/3.9.1/A/RelW/ext/trial_protocol/include/trial/protocol/json/serialization/std/vector.hpp:37:21: note: in
instantiation of function template specialization
'trial::protocol::json::basic_oarchive::save_override<std::__1::__bit_const_reference<std::__1::vector<bool,
std::__1::allocator > > >' requested here
archive.save_override(*it);
^
/nvme/momec/c1/b/l/x86-64/c/3.9.1/A/RelW/ext/trial_protocol/include/trial/protocol/json/serialization/serialization.hpp:113:75: note: in
instantiation of member function 'trial::protocol::serialization::save_overloader<trial::protocol::json::basic_oarchive,
std::__1::vector<bool, std::__1::allocator >, void>::save' requested here
save_overloader<trial::protocol::json::basic_oarchive, Value>::save(ar, data, version);
^
/nvme/momec/c1/b/l/x86-64/c/3.9.1/A/RelW/usr/include/boost/serialization/split_free.hpp:45:9: note: (skipping 9 contexts in backtrace; use
-ftemplate-backtrace-limit=0 to see all)
save(ar, t, v);
^
/nvme/momec/c1/b/l/x86-64/c/3.9.1/A/RelW/usr/include/boost/archive/detail/oserializer.hpp:309:16: note: in instantiation of function
template specialization 'boost::archive::detail::save_non_pointer_type<trial::protocol::json::basic_oarchive
>::save_standard::invoke<std::__1::vector<bool, std::__1::allocator > >' requested here
typex::invoke(ar, t);
^
/nvme/momec/c1/b/l/x86-64/c/3.9.1/A/RelW/usr/include/boost/archive/detail/oserializer.hpp:526:12: note: in instantiation of function
template specialization 'boost::archive::detail::save_non_pointer_type<trial::protocol::json::basic_oarchive
>::invoke<std::__1::vector<bool, std::__1::allocator > >' requested here
typex::invoke(ar, t);
^
/nvme/momec/c1/b/l/x86-64/c/3.9.1/A/RelW/ext/trial_protocol/include/trial/protocol/json/serialization/detail/oarchive.ipp:48:21: note: in
instantiation of function template specialization 'boost::archive::save<trial::protocol::json::basic_oarchive, const
std::__1::vector<bool, std::__1::allocator > >' requested here
boost::archive::save(*this, data);
^
/nvme/momec/c1/b/l/x86-64/c/3.9.1/A/RelW/usr/include/boost/archive/detail/interface_oarchive.hpp:70:23: note: in instantiation of function
template specialization 'trial::protocol::json::basic_oarchive::save_override<std::__1::vector<bool, std::__1::allocator
> >' requested here
this->This()->save_override(t);
^
/nvme/momec/c1/b/l/x86-64/c/3.9.1/A/RelW/ext/trial_protocol/test/json/oarchive_suite.cpp:410:8: note: in instantiation of function template
specialization 'boost::archive::detail::interface_oarchive<trial::protocol::json::basic_oarchive
>::operator<<<std::__1::vector<bool, std::__1::allocator > >' requested here
ar << value;
^
/nvme/momec/c1/b/l/x86-64/c/3.9.1/A/RelW/usr/include/boost/archive/detail/basic_oarchive.hpp:72:21: note: passing argument to parameter 'x'
here
const void *x,
and for serialize_overloader
In file included from /nvme/momec/c1/b/l/x86-64/c/3.9.1/A/RelW/ext/trial_protocol/test/json/oarchive_suite.cpp:14:
In file included from /nvme/momec/c1/b/l/x86-64/c/3.9.1/A/RelW/ext/trial_protocol/include/trial/protocol/json/serialization.hpp:14:
/nvme/momec/c1/b/l/x86-64/c/3.9.1/A/RelW/ext/trial_protocol/include/trial/protocol/json/serialization/serialization.hpp:134:80: error: no
member named 'serialize' in 'trial::protocol::serialization::serialize_overloader<trial::protocol::json::basic_oarchive,
std::__1::__bit_const_reference<std::__1::vector<bool, std::__1::allocator > >, void>'
serialize_overloader<trial::protocol::json::basic_oarchive, Value>::serialize(ar, data, version);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
/nvme/momec/c1/b/l/x86-64/c/3.9.1/A/RelW/usr/include/boost/serialization/serialization.hpp:126:5: note: in instantiation of function
template specialization 'boost::serialization::serialize<char, std::__1::__bit_const_reference<std::__1::vector<bool,
std::__1::allocator > > >' requested here
serialize(ar, t, v);
^
/nvme/momec/c1/b/l/x86-64/c/3.9.1/A/RelW/usr/include/boost/archive/detail/oserializer.hpp:149:27: note: in instantiation of function
template specialization 'boost::serialization::serialize_adl<trial::protocol::json::basic_oarchive,
std::__1::__bit_const_reference<std::__1::vector<bool, std::__1::allocator > > >' requested here
boost::serialization::serialize_adl(
^
/nvme/momec/c1/b/l/x86-64/c/3.9.1/A/RelW/usr/include/boost/serialization/singleton.hpp:122:47: note: in instantiation of member function
'boost::archive::detail::oserializer<trial::protocol::json::basic_oarchive,
std::__1::__bit_const_reference<std::__1::vector<bool, std::__1::allocator > > >::save_object_data' requested here
static detail::singleton_wrapper< T > t;
^
/nvme/momec/c1/b/l/x86-64/c/3.9.1/A/RelW/usr/include/boost/serialization/singleton.hpp:135:16: note: in instantiation of member function
'boost::serialization::singleton<boost::archive::detail::oserializer<trial::protocol::json::basic_oarchive,
std::__1::__bit_const_reference<std::__1::vector<bool, std::__1::allocator > > > >::get_instance' requested here
return get_instance();
^
/nvme/momec/c1/b/l/x86-64/c/3.9.1/A/RelW/usr/include/boost/archive/detail/oserializer.hpp:258:20: note: in instantiation of member function
'boost::serialization::singleton<boost::archive::detail::oserializer<trial::protocol::json::basic_oarchive,
std::__1::__bit_const_reference<std::__1::vector<bool, std::__1::allocator > > > >::get_const_instance' requested here
>::get_const_instance()
^
/nvme/momec/c1/b/l/x86-64/c/3.9.1/A/RelW/usr/include/boost/archive/detail/oserializer.hpp:309:16: note: (skipping 14 contexts in backtrace;
use -ftemplate-backtrace-limit=0 to see all)
typex::invoke(ar, t);
^
/nvme/momec/c1/b/l/x86-64/c/3.9.1/A/RelW/usr/include/boost/archive/detail/oserializer.hpp:309:16: note: in instantiation of function
template specialization 'boost::archive::detail::save_non_pointer_type<trial::protocol::json::basic_oarchive
>::save_standard::invoke<std::__1::vector<bool, std::__1::allocator > >' requested here
/nvme/momec/c1/b/l/x86-64/c/3.9.1/A/RelW/usr/include/boost/archive/detail/oserializer.hpp:526:12: note: in instantiation of function
template specialization 'boost::archive::detail::save_non_pointer_type<trial::protocol::json::basic_oarchive
>::invoke<std::__1::vector<bool, std::__1::allocator > >' requested here
typex::invoke(ar, t);
^
/nvme/momec/c1/b/l/x86-64/c/3.9.1/A/RelW/ext/trial_protocol/include/trial/protocol/json/serialization/detail/oarchive.ipp:48:21: note: in
instantiation of function template specialization 'boost::archive::save<trial::protocol::json::basic_oarchive, const
std::__1::vector<bool, std::__1::allocator > >' requested here
boost::archive::save(*this, data);
^
/nvme/momec/c1/b/l/x86-64/c/3.9.1/A/RelW/usr/include/boost/archive/detail/interface_oarchive.hpp:70:23: note: in instantiation of function
template specialization 'trial::protocol::json::basic_oarchive::save_override<std::__1::vector<bool, std::__1::allocator
> >' requested here
this->This()->save_override(t);
^
/nvme/momec/c1/b/l/x86-64/c/3.9.1/A/RelW/ext/trial_protocol/test/json/oarchive_suite.cpp:410:8: note: in instantiation of function template
specialization 'boost::archive::detail::interface_oarchive<trial::protocol::json::basic_oarchive
>::operator<<<std::__1::vector<bool, std::__1::allocator > >' requested here
ar << value;
Thanks for looking into this
from trial.protocol.
The ctype problem is probably caused by the use of unsigned char
. I suspect that I need to define a char_traits
for unsigned char
(that could also replace my workaround in json/detail/to_string.hpp
.) However, I need to find a way to reproduce the problem locally first (installing the libc++ package caused unrelated problems.)
The serialization problems are most likely caused by the test suite that uses std::vector<bool>
. I have pushed a commit that uses std::vector<int>
instead. I will looked into the problem with std::vector<bool>
later.
from trial.protocol.
Should be fixed on develop now.
from trial.protocol.
Related Issues (20)
- Change Allocator template to Allocator type HOT 1
- AllocatorAwareContainer HOT 4
- Use to_address() HOT 2
- Do not inherit from allocator HOT 1
- Use error specializations thoroughly HOT 1
- Compare current string-value with a string_view w/o allocating HOT 12
- reader.value<std::string>() should allow the allocator to be provided HOT 5
- String collector API should only be noexcept if `Collector()` is noexcept HOT 11
- Parser gets confused on non-NULL terminated string HOT 1
- Isn't boost::serialization::nvp missing in serialization support? HOT 1
- Literal whitespace vs literal node HOT 7
- Split symbol::string and symbol::object_key events HOT 3
- Tests fail to build on boost 1.76 HOT 6
- Reader algorithms on chunk_reader HOT 4
- Parsers combinators HOT 7
- Merged matching & decode on Boost.Hana serialization
- Use asciidoc to document new pages HOT 4
- fails to build with latest visual studio
- Issues with constness in std::make_pair HOT 4
- Generator for real numbers shouldn't print the fractional part if there is none HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from trial.protocol.