yandex / ozo

OZO is a C++17 Boost.Asio based header-only library for asyncronous communication with PostgreSQL DBMS.
PostgreSQL License
227 stars 46 forks source link

Compile failure with new ostream code #245

Closed jonesmz closed 4 years ago

jonesmz commented 4 years ago

This is a new issue.

Am I missing a header file or something?

Notably, I get this error on gcc 9.2, but I don't get this error with clang 9.

In file included from /workspace/3rdparty/ozo/include/ozo/io/send.h:6,
                 from /workspace/3rdparty/ozo/include/ozo/ext/std/nullopt_t.h:5,
                 from /workspace/3rdparty/ozo/include/ozo/ext/std.h:12,
                 from /workspace/3rdparty/ozo/include/ozo/io/binary_query.h:3,
                 from /workspace/3rdparty/ozo/include/ozo/impl/io.h:6,
                 from /workspace/3rdparty/ozo/include/ozo/impl/async_request.h:6,
                 from /workspace/3rdparty/ozo/include/ozo/impl/async_execute.h:4,
                 from /workspace/3rdparty/ozo/include/ozo/execute.h:3,
                 from /workspace/inc/application/db/execute_pipeline.h:16,
                 from /workspace/inc/application/controller/telemetry_data_controller.h:9,
                 from /workspace/lib/controller/telemetry_data_controller.cpp:4:
/workspace/3rdparty/ozo/include/ozo/io/ostream.h: In instantiation of ‘ozo::Require<(Integral<T> && (sizeof (T) != 1)), ozo::ostream&> ozo::ostream::write(T) [with T = int; ozo::Require<(Integral<T> && (sizeof (T) != 1)), ozo::ostream&> = ozo::ostream&]’:
/workspace/3rdparty/ozo/include/ozo/io/ostream.h:81:45:   required from ‘ozo::ostream& ozo::write(ozo::ostream&, Ts&& ...) [with Ts = {int}]’
/workspace/3rdparty/ozo/include/ozo/io/send.h:112:10:   required from ‘ozo::ostream& ozo::send_data_frame(ozo::ostream&, const OidMap&, const In&) [with OidMap = ozo::oid_map_t<>; In = application::BasicSharedString<char>]’
/workspace/3rdparty/ozo/include/ozo/io/array.h:121:66:   required from ‘ozo::detail::send_array_impl<T>::apply(ozo::ostream&, const OidMap&, const T&) [with OidMap = ozo::oid_map_t<>; T = std::vector<application::BasicSharedString<char> >]::<lambda(const auto:26&)> [with auto:26 = application::BasicSharedString<char>]’
/usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/include/g++-v9/bits/stl_algo.h:3876:5:   required from ‘_Funct std::for_each(_IIter, _IIter, _Funct) [with _IIter = __gnu_cxx::__normal_iterator<const application::BasicSharedString<char>*, std::vector<application::BasicSharedString<char> > >; _Funct = ozo::detail::send_array_impl<T>::apply(ozo::ostream&, const OidMap&, const T&) [with OidMap = ozo::oid_map_t<>; T = std::vector<application::BasicSharedString<char> >]::<lambda(const auto:26&)>]’
/usr/include/boost/range/algorithm/for_each.hpp:102:6:   required from ‘UnaryFunction boost::range::for_each(const SinglePassRange&, UnaryFunction) [with SinglePassRange = std::vector<application::BasicSharedString<char> >; UnaryFunction = ozo::detail::send_array_impl<T>::apply(ozo::ostream&, const OidMap&, const T&) [with OidMap = ozo::oid_map_t<>; T = std::vector<application::BasicSharedString<char> >]::<lambda(const auto:26&)>]’
/workspace/3rdparty/ozo/include/ozo/io/array.h:121:24:   [ skipping 47 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/boost/asio/async_result.hpp:151:49:   required from ‘static boost::asio::async_result<CompletionToken, Signature>::return_type boost::asio::async_result<CompletionToken, Signature>::initiate(Initiation&&, RawCompletionToken&&, Args&& ...) [with Initiation = ozo::detail::initiate_async_execute; RawCompletionToken = application::ExecutePipeline<PARAMS_T>::execute_impl(std::any) [with PARAMS_T = {application::BasicSharedString<char>, application::BasicSharedString<char>, std::optional<application::BasicSharedString<char> >}]::<lambda(ozo::error_code, auto:45)>; Args = {ozo::connection_provider<ozo::connection_pool<ozo::connection_info<ozo::oid_map_t<>, ozo::none_t> >&>, std::chrono::duration<long int, std::ratio<1, 1> >&, ozo::impl::query<std::basic_string_view<char, std::char_traits<char> >, std::reference_wrapper<std::vector<application::BasicSharedString<char>, std::allocator<application::BasicSharedString<char> > > >, std::reference_wrapper<std::vector<application::BasicSharedString<char>, std::allocator<application::BasicSharedString<char> > > >, std::reference_wrapper<std::vector<std::optional<application::BasicSharedString<char> >, std::allocator<std::optional<application::BasicSharedString<char> > > > > >}; CompletionToken = application::ExecutePipeline<PARAMS_T>::execute_impl(std::any) [with PARAMS_T = {application::BasicSharedString<char>, application::BasicSharedString<char>, std::optional<application::BasicSharedString<char> >}]::<lambda(ozo::error_code, auto:45)>; Signature = void(boost::system::error_code, std::shared_ptr<ozo::pooled_connection<yamail::resource_pool::handle<ozo::connection_rep<ozo::oid_map_t<>, ozo::none_t> >, boost::asio::io_context::executor_type> >); boost::asio::async_result<CompletionToken, Signature>::return_type = void]’
/usr/include/boost/asio/async_result.hpp:364:25:   required from ‘typename std::enable_if<boost::asio::detail::async_result_has_initiate_memfn<CompletionToken, Signature>::value, decltype (boost::asio::async_result<typename std::decay<_Tp>::type, Signature>::initiate(declval<Initiation&&>(), declval<CompletionToken&&>(), (declval<Args&>)()...))>::type boost::asio::async_initiate(Initiation&&, CompletionToken&, Args&& ...) [with CompletionToken = application::ExecutePipeline<PARAMS_T>::execute_impl(std::any) [with PARAMS_T = {application::BasicSharedString<char>, application::BasicSharedString<char>, std::optional<application::BasicSharedString<char> >}]::<lambda(ozo::error_code, auto:45)>; Signature = void(boost::system::error_code, std::shared_ptr<ozo::pooled_connection<yamail::resource_pool::handle<ozo::connection_rep<ozo::oid_map_t<>, ozo::none_t> >, boost::asio::io_context::executor_type> >); Initiation = ozo::detail::initiate_async_execute; Args = {ozo::connection_provider<ozo::connection_pool<ozo::connection_info<ozo::oid_map_t<>, ozo::none_t> >&>, std::chrono::duration<long int, std::ratio<1, 1> >&, ozo::impl::query<std::basic_string_view<char, std::char_traits<char> >, std::reference_wrapper<std::vector<application::BasicSharedString<char>, std::allocator<application::BasicSharedString<char> > > >, std::reference_wrapper<std::vector<application::BasicSharedString<char>, std::allocator<application::BasicSharedString<char> > > >, std::reference_wrapper<std::vector<std::optional<application::BasicSharedString<char> >, std::allocator<std::optional<application::BasicSharedString<char> > > > > >}; typename std::enable_if<boost::asio::detail::async_result_has_initiate_memfn<CompletionToken, Signature>::value, decltype (boost::asio::async_result<typename std::decay<_Tp>::type, Signature>::initiate(declval<Initiation&&>(), declval<CompletionToken&&>(), (declval<Args&>)()...))>::type = void]’
/workspace/3rdparty/ozo/include/ozo/execute.h:53:69:   required from ‘decltype(auto) ozo::execute_op<Initiator>::operator()(P&&, Q&&, TimeConstraint, CompletionToken&&) const [with P = ozo::connection_provider<ozo::connection_pool<ozo::connection_info<> >&>; Q = ozo::impl::query<std::basic_string_view<char>, std::reference_wrapper<std::vector<application::BasicSharedString<char>, std::allocator<application::BasicSharedString<char> > > >, std::reference_wrapper<std::vector<application::BasicSharedString<char>, std::allocator<application::BasicSharedString<char> > > >, std::reference_wrapper<std::vector<std::optional<application::BasicSharedString<char> >, std::allocator<std::optional<application::BasicSharedString<char> > > > > >; TimeConstraint = std::chrono::duration<long int>; CompletionToken = application::ExecutePipeline<PARAMS_T>::execute_impl(std::any) [with PARAMS_T = {application::BasicSharedString<char>, application::BasicSharedString<char>, std::optional<application::BasicSharedString<char> >}]::<lambda(ozo::error_code, auto:45)>; Initiator = ozo::detail::initiate_async_execute]’
/workspace/inc/application/db/execute_pipeline.h:221:17:   required from ‘void application::ExecutePipeline<PARAMS_T>::execute_impl(std::any) [with PARAMS_T = {application::BasicSharedString<char>, application::BasicSharedString<char>, std::optional<application::BasicSharedString<char> >}]’
/workspace/inc/application/db/execute_pipeline.h:158:5:   required from ‘void application::ExecutePipeline<PARAMS_T>::execute(std::any, ARGS_T&& ...) [with ARGS_T = {application::BasicSharedString<char>, application::BasicSharedString<char>, std::optional<application::BasicSharedString<char> >}; PARAMS_T = {application::BasicSharedString<char>, application::BasicSharedString<char>, std::optional<application::BasicSharedString<char> >}]’
/workspace/lib/controller/telemetry_data_controller.cpp:39:113:   required from here
/workspace/3rdparty/ozo/include/ozo/io/ostream.h:51:25: error: no matching function for call to ‘ozo::ostream::write(ozo::detail::typed_buffer<int>&)’
   51 |         return write(buf);
      |                         ^
/workspace/3rdparty/ozo/include/ozo/io/ostream.h:25:14: note: candidate: ‘ozo::ostream& ozo::ostream::write(const char_type*, std::streamsize)’
   25 |     ostream& write(const char_type* s, std::streamsize n) {
      |              ^~~~~
/workspace/3rdparty/ozo/include/ozo/io/ostream.h:25:14: note:   candidate expects 2 arguments, 1 provided
/workspace/3rdparty/ozo/include/ozo/io/ostream.h:36:54: note: candidate: ‘template<class T> ozo::Require<(Integral<T> && (sizeof (T) == 1)), ozo::ostream&> ozo::ostream::write(T)’
   36 |     Require<Integral<T> && sizeof(T) == 1, ostream&> write(T in) {
      |                                                      ^~~~~
/workspace/3rdparty/ozo/include/ozo/io/ostream.h:36:54: note:   template argument deduction/substitution failed:
In file included from /usr/include/boost/hana/detail/decay.hpp:16,
                 from /usr/include/boost/hana/pair.hpp:16,
                 from /usr/include/boost/hana/detail/struct_macros.hpp:27,
                 from /usr/include/boost/hana/define_struct.hpp:15,
                 from /workspace/inc/application/controller/telemetry_config_interfaces.h:8,
                 from /workspace/inc/application/controller/telemetry_data_controller.h:7,
                 from /workspace/lib/controller/telemetry_data_controller.cpp:4:
/usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/include/g++-v9/type_traits: In substitution of ‘template<bool _Cond, class _Tp> using enable_if_t = typename std::enable_if::type [with bool _Cond = false; _Tp = ozo::ostream&]’:
/workspace/3rdparty/ozo/include/ozo/core/concept.h:56:7:   required by substitution of ‘template<bool Condition, class Type> using Require = std::enable_if_t<Condition, Type> [with bool Condition = (((bool)ozo::Integral<ozo::detail::typed_buffer<int> >) && (sizeof (ozo::detail::typed_buffer<int>) == 1)); Type = ozo::ostream&]’
/workspace/3rdparty/ozo/include/ozo/io/ostream.h:36:54:   required by substitution of ‘template<class T> ozo::Require<(Integral<T> && (sizeof (T) == 1)), ozo::ostream&> ozo::ostream::write(T) [with T = ozo::detail::typed_buffer<int>]’
/workspace/3rdparty/ozo/include/ozo/io/ostream.h:51:25:   required from ‘ozo::Require<(Integral<T> && (sizeof (T) != 1)), ozo::ostream&> ozo::ostream::write(T) [with T = int; ozo::Require<(Integral<T> && (sizeof (T) != 1)), ozo::ostream&> = ozo::ostream&]’
/workspace/3rdparty/ozo/include/ozo/io/ostream.h:81:45:   required from ‘ozo::ostream& ozo::write(ozo::ostream&, Ts&& ...) [with Ts = {int}]’
/workspace/3rdparty/ozo/include/ozo/io/send.h:112:10:   required from ‘ozo::ostream& ozo::send_data_frame(ozo::ostream&, const OidMap&, const In&) [with OidMap = ozo::oid_map_t<>; In = application::BasicSharedString<char>]’
/workspace/3rdparty/ozo/include/ozo/io/array.h:121:66:   [ skipping 50 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/boost/asio/async_result.hpp:151:49:   required from ‘static boost::asio::async_result<CompletionToken, Signature>::return_type boost::asio::async_result<CompletionToken, Signature>::initiate(Initiation&&, RawCompletionToken&&, Args&& ...) [with Initiation = ozo::detail::initiate_async_execute; RawCompletionToken = application::ExecutePipeline<PARAMS_T>::execute_impl(std::any) [with PARAMS_T = {application::BasicSharedString<char>, application::BasicSharedString<char>, std::optional<application::BasicSharedString<char> >}]::<lambda(ozo::error_code, auto:45)>; Args = {ozo::connection_provider<ozo::connection_pool<ozo::connection_info<ozo::oid_map_t<>, ozo::none_t> >&>, std::chrono::duration<long int, std::ratio<1, 1> >&, ozo::impl::query<std::basic_string_view<char, std::char_traits<char> >, std::reference_wrapper<std::vector<application::BasicSharedString<char>, std::allocator<application::BasicSharedString<char> > > >, std::reference_wrapper<std::vector<application::BasicSharedString<char>, std::allocator<application::BasicSharedString<char> > > >, std::reference_wrapper<std::vector<std::optional<application::BasicSharedString<char> >, std::allocator<std::optional<application::BasicSharedString<char> > > > > >}; CompletionToken = application::ExecutePipeline<PARAMS_T>::execute_impl(std::any) [with PARAMS_T = {application::BasicSharedString<char>, application::BasicSharedString<char>, std::optional<application::BasicSharedString<char> >}]::<lambda(ozo::error_code, auto:45)>; Signature = void(boost::system::error_code, std::shared_ptr<ozo::pooled_connection<yamail::resource_pool::handle<ozo::connection_rep<ozo::oid_map_t<>, ozo::none_t> >, boost::asio::io_context::executor_type> >); boost::asio::async_result<CompletionToken, Signature>::return_type = void]’
/usr/include/boost/asio/async_result.hpp:364:25:   required from ‘typename std::enable_if<boost::asio::detail::async_result_has_initiate_memfn<CompletionToken, Signature>::value, decltype (boost::asio::async_result<typename std::decay<_Tp>::type, Signature>::initiate(declval<Initiation&&>(), declval<CompletionToken&&>(), (declval<Args&>)()...))>::type boost::asio::async_initiate(Initiation&&, CompletionToken&, Args&& ...) [with CompletionToken = application::ExecutePipeline<PARAMS_T>::execute_impl(std::any) [with PARAMS_T = {application::BasicSharedString<char>, application::BasicSharedString<char>, std::optional<application::BasicSharedString<char> >}]::<lambda(ozo::error_code, auto:45)>; Signature = void(boost::system::error_code, std::shared_ptr<ozo::pooled_connection<yamail::resource_pool::handle<ozo::connection_rep<ozo::oid_map_t<>, ozo::none_t> >, boost::asio::io_context::executor_type> >); Initiation = ozo::detail::initiate_async_execute; Args = {ozo::connection_provider<ozo::connection_pool<ozo::connection_info<ozo::oid_map_t<>, ozo::none_t> >&>, std::chrono::duration<long int, std::ratio<1, 1> >&, ozo::impl::query<std::basic_string_view<char, std::char_traits<char> >, std::reference_wrapper<std::vector<application::BasicSharedString<char>, std::allocator<application::BasicSharedString<char> > > >, std::reference_wrapper<std::vector<application::BasicSharedString<char>, std::allocator<application::BasicSharedString<char> > > >, std::reference_wrapper<std::vector<std::optional<application::BasicSharedString<char> >, std::allocator<std::optional<application::BasicSharedString<char> > > > > >}; typename std::enable_if<boost::asio::detail::async_result_has_initiate_memfn<CompletionToken, Signature>::value, decltype (boost::asio::async_result<typename std::decay<_Tp>::type, Signature>::initiate(declval<Initiation&&>(), declval<CompletionToken&&>(), (declval<Args&>)()...))>::type = void]’
/workspace/3rdparty/ozo/include/ozo/execute.h:53:69:   required from ‘decltype(auto) ozo::execute_op<Initiator>::operator()(P&&, Q&&, TimeConstraint, CompletionToken&&) const [with P = ozo::connection_provider<ozo::connection_pool<ozo::connection_info<> >&>; Q = ozo::impl::query<std::basic_string_view<char>, std::reference_wrapper<std::vector<application::BasicSharedString<char>, std::allocator<application::BasicSharedString<char> > > >, std::reference_wrapper<std::vector<application::BasicSharedString<char>, std::allocator<application::BasicSharedString<char> > > >, std::reference_wrapper<std::vector<std::optional<application::BasicSharedString<char> >, std::allocator<std::optional<application::BasicSharedString<char> > > > > >; TimeConstraint = std::chrono::duration<long int>; CompletionToken = application::ExecutePipeline<PARAMS_T>::execute_impl(std::any) [with PARAMS_T = {application::BasicSharedString<char>, application::BasicSharedString<char>, std::optional<application::BasicSharedString<char> >}]::<lambda(ozo::error_code, auto:45)>; Initiator = ozo::detail::initiate_async_execute]’
/workspace/inc/application/db/execute_pipeline.h:221:17:   required from ‘void application::ExecutePipeline<PARAMS_T>::execute_impl(std::any) [with PARAMS_T = {application::BasicSharedString<char>, application::BasicSharedString<char>, std::optional<application::BasicSharedString<char> >}]’
/workspace/inc/application/db/execute_pipeline.h:158:5:   required from ‘void application::ExecutePipeline<PARAMS_T>::execute(std::any, ARGS_T&& ...) [with ARGS_T = {application::BasicSharedString<char>, application::BasicSharedString<char>, std::optional<application::BasicSharedString<char> >}; PARAMS_T = {application::BasicSharedString<char>, application::BasicSharedString<char>, std::optional<application::BasicSharedString<char> >}]’
/workspace/lib/controller/telemetry_data_controller.cpp:39:113:   required from here
/usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/include/g++-v9/type_traits:2384:11: error: no type named ‘type’ in ‘struct std::enable_if<false, ozo::ostream&>’
 2384 |     using enable_if_t = typename enable_if<_Cond, _Tp>::type;
      |           ^~~~~~~~~~~
In file included from /workspace/3rdparty/ozo/include/ozo/io/send.h:6,
                 from /workspace/3rdparty/ozo/include/ozo/ext/std/nullopt_t.h:5,
                 from /workspace/3rdparty/ozo/include/ozo/ext/std.h:12,
                 from /workspace/3rdparty/ozo/include/ozo/io/binary_query.h:3,
                 from /workspace/3rdparty/ozo/include/ozo/impl/io.h:6,
                 from /workspace/3rdparty/ozo/include/ozo/impl/async_request.h:6,
                 from /workspace/3rdparty/ozo/include/ozo/impl/async_execute.h:4,
                 from /workspace/3rdparty/ozo/include/ozo/execute.h:3,
                 from /workspace/inc/application/db/execute_pipeline.h:16,
                 from /workspace/inc/application/controller/telemetry_data_controller.h:9,
                 from /workspace/lib/controller/telemetry_data_controller.cpp:4:
/workspace/3rdparty/ozo/include/ozo/io/ostream.h: In instantiation of ‘ozo::Require<(Integral<T> && (sizeof (T) != 1)), ozo::ostream&> ozo::ostream::write(T) [with T = int; ozo::Require<(Integral<T> && (sizeof (T) != 1)), ozo::ostream&> = ozo::ostream&]’:
/workspace/3rdparty/ozo/include/ozo/io/ostream.h:81:45:   required from ‘ozo::ostream& ozo::write(ozo::ostream&, Ts&& ...) [with Ts = {int}]’
/workspace/3rdparty/ozo/include/ozo/io/send.h:112:10:   required from ‘ozo::ostream& ozo::send_data_frame(ozo::ostream&, const OidMap&, const In&) [with OidMap = ozo::oid_map_t<>; In = application::BasicSharedString<char>]’
/workspace/3rdparty/ozo/include/ozo/io/array.h:121:66:   required from ‘ozo::detail::send_array_impl<T>::apply(ozo::ostream&, const OidMap&, const T&) [with OidMap = ozo::oid_map_t<>; T = std::vector<application::BasicSharedString<char> >]::<lambda(const auto:26&)> [with auto:26 = application::BasicSharedString<char>]’
/usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/include/g++-v9/bits/stl_algo.h:3876:5:   required from ‘_Funct std::for_each(_IIter, _IIter, _Funct) [with _IIter = __gnu_cxx::__normal_iterator<const application::BasicSharedString<char>*, std::vector<application::BasicSharedString<char> > >; _Funct = ozo::detail::send_array_impl<T>::apply(ozo::ostream&, const OidMap&, const T&) [with OidMap = ozo::oid_map_t<>; T = std::vector<application::BasicSharedString<char> >]::<lambda(const auto:26&)>]’
/usr/include/boost/range/algorithm/for_each.hpp:102:6:   required from ‘UnaryFunction boost::range::for_each(const SinglePassRange&, UnaryFunction) [with SinglePassRange = std::vector<application::BasicSharedString<char> >; UnaryFunction = ozo::detail::send_array_impl<T>::apply(ozo::ostream&, const OidMap&, const T&) [with OidMap = ozo::oid_map_t<>; T = std::vector<application::BasicSharedString<char> >]::<lambda(const auto:26&)>]’
/workspace/3rdparty/ozo/include/ozo/io/array.h:121:24:   [ skipping 47 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/boost/asio/async_result.hpp:151:49:   required from ‘static boost::asio::async_result<CompletionToken, Signature>::return_type boost::asio::async_result<CompletionToken, Signature>::initiate(Initiation&&, RawCompletionToken&&, Args&& ...) [with Initiation = ozo::detail::initiate_async_execute; RawCompletionToken = application::ExecutePipeline<PARAMS_T>::execute_impl(std::any) [with PARAMS_T = {application::BasicSharedString<char>, application::BasicSharedString<char>, std::optional<application::BasicSharedString<char> >}]::<lambda(ozo::error_code, auto:45)>; Args = {ozo::connection_provider<ozo::connection_pool<ozo::connection_info<ozo::oid_map_t<>, ozo::none_t> >&>, std::chrono::duration<long int, std::ratio<1, 1> >&, ozo::impl::query<std::basic_string_view<char, std::char_traits<char> >, std::reference_wrapper<std::vector<application::BasicSharedString<char>, std::allocator<application::BasicSharedString<char> > > >, std::reference_wrapper<std::vector<application::BasicSharedString<char>, std::allocator<application::BasicSharedString<char> > > >, std::reference_wrapper<std::vector<std::optional<application::BasicSharedString<char> >, std::allocator<std::optional<application::BasicSharedString<char> > > > > >}; CompletionToken = application::ExecutePipeline<PARAMS_T>::execute_impl(std::any) [with PARAMS_T = {application::BasicSharedString<char>, application::BasicSharedString<char>, std::optional<application::BasicSharedString<char> >}]::<lambda(ozo::error_code, auto:45)>; Signature = void(boost::system::error_code, std::shared_ptr<ozo::pooled_connection<yamail::resource_pool::handle<ozo::connection_rep<ozo::oid_map_t<>, ozo::none_t> >, boost::asio::io_context::executor_type> >); boost::asio::async_result<CompletionToken, Signature>::return_type = void]’
/usr/include/boost/asio/async_result.hpp:364:25:   required from ‘typename std::enable_if<boost::asio::detail::async_result_has_initiate_memfn<CompletionToken, Signature>::value, decltype (boost::asio::async_result<typename std::decay<_Tp>::type, Signature>::initiate(declval<Initiation&&>(), declval<CompletionToken&&>(), (declval<Args&>)()...))>::type boost::asio::async_initiate(Initiation&&, CompletionToken&, Args&& ...) [with CompletionToken = application::ExecutePipeline<PARAMS_T>::execute_impl(std::any) [with PARAMS_T = {application::BasicSharedString<char>, application::BasicSharedString<char>, std::optional<application::BasicSharedString<char> >}]::<lambda(ozo::error_code, auto:45)>; Signature = void(boost::system::error_code, std::shared_ptr<ozo::pooled_connection<yamail::resource_pool::handle<ozo::connection_rep<ozo::oid_map_t<>, ozo::none_t> >, boost::asio::io_context::executor_type> >); Initiation = ozo::detail::initiate_async_execute; Args = {ozo::connection_provider<ozo::connection_pool<ozo::connection_info<ozo::oid_map_t<>, ozo::none_t> >&>, std::chrono::duration<long int, std::ratio<1, 1> >&, ozo::impl::query<std::basic_string_view<char, std::char_traits<char> >, std::reference_wrapper<std::vector<application::BasicSharedString<char>, std::allocator<application::BasicSharedString<char> > > >, std::reference_wrapper<std::vector<application::BasicSharedString<char>, std::allocator<application::BasicSharedString<char> > > >, std::reference_wrapper<std::vector<std::optional<application::BasicSharedString<char> >, std::allocator<std::optional<application::BasicSharedString<char> > > > > >}; typename std::enable_if<boost::asio::detail::async_result_has_initiate_memfn<CompletionToken, Signature>::value, decltype (boost::asio::async_result<typename std::decay<_Tp>::type, Signature>::initiate(declval<Initiation&&>(), declval<CompletionToken&&>(), (declval<Args&>)()...))>::type = void]’
/workspace/3rdparty/ozo/include/ozo/execute.h:53:69:   required from ‘decltype(auto) ozo::execute_op<Initiator>::operator()(P&&, Q&&, TimeConstraint, CompletionToken&&) const [with P = ozo::connection_provider<ozo::connection_pool<ozo::connection_info<> >&>; Q = ozo::impl::query<std::basic_string_view<char>, std::reference_wrapper<std::vector<application::BasicSharedString<char>, std::allocator<application::BasicSharedString<char> > > >, std::reference_wrapper<std::vector<application::BasicSharedString<char>, std::allocator<application::BasicSharedString<char> > > >, std::reference_wrapper<std::vector<std::optional<application::BasicSharedString<char> >, std::allocator<std::optional<application::BasicSharedString<char> > > > > >; TimeConstraint = std::chrono::duration<long int>; CompletionToken = application::ExecutePipeline<PARAMS_T>::execute_impl(std::any) [with PARAMS_T = {application::BasicSharedString<char>, application::BasicSharedString<char>, std::optional<application::BasicSharedString<char> >}]::<lambda(ozo::error_code, auto:45)>; Initiator = ozo::detail::initiate_async_execute]’
/workspace/inc/application/db/execute_pipeline.h:221:17:   required from ‘void application::ExecutePipeline<PARAMS_T>::execute_impl(std::any) [with PARAMS_T = {application::BasicSharedString<char>, application::BasicSharedString<char>, std::optional<application::BasicSharedString<char> >}]’
/workspace/inc/application/db/execute_pipeline.h:158:5:   required from ‘void application::ExecutePipeline<PARAMS_T>::execute(std::any, ARGS_T&& ...) [with ARGS_T = {application::BasicSharedString<char>, application::BasicSharedString<char>, std::optional<application::BasicSharedString<char> >}; PARAMS_T = {application::BasicSharedString<char>, application::BasicSharedString<char>, std::optional<application::BasicSharedString<char> >}]’
/workspace/lib/controller/telemetry_data_controller.cpp:39:113:   required from here
/workspace/3rdparty/ozo/include/ozo/io/ostream.h:41:43: note: candidate: ‘template<class T> ozo::Require<RawDataReadable<T>, ozo::ostream&> ozo::ostream::write(const T&)’
   41 |     Require<RawDataReadable<T>, ostream&> write(const T& in) {
      |                                           ^~~~~
/workspace/3rdparty/ozo/include/ozo/io/ostream.h:41:43: note:   template argument deduction/substitution failed:
/workspace/3rdparty/ozo/include/ozo/io/ostream.h:48:54: note: candidate: ‘template<class T> ozo::Require<(Integral<T> && (sizeof (T) != 1)), ozo::ostream&> ozo::ostream::write(T)’
   48 |     Require<Integral<T> && sizeof(T) != 1, ostream&> write(T in) {
      |                                                      ^~~~~
/workspace/3rdparty/ozo/include/ozo/io/ostream.h:48:54: note:   template argument deduction/substitution failed:
/workspace/3rdparty/ozo/include/ozo/io/ostream.h:55:41: note: candidate: ‘template<class T> ozo::Require<FloatingPoint<T>, ozo::ostream&> ozo::ostream::write(T)’
   55 |     Require<FloatingPoint<T>, ostream&> write(T in) {
      |                                         ^~~~~
/workspace/3rdparty/ozo/include/ozo/io/ostream.h:55:41: note:   template argument deduction/substitution failed:
/workspace/3rdparty/ozo/include/ozo/io/ostream.h:59:14: note: candidate: ‘ozo::ostream& ozo::ostream::write(bool)’
   59 |     ostream& write(bool in) {
      |              ^~~~~
/workspace/3rdparty/ozo/include/ozo/io/ostream.h:59:25: note:   no known conversion for argument 1 from ‘ozo::detail::typed_buffer<int>’ to ‘bool’
   59 |     ostream& write(bool in) {
      |                    ~~~~~^~
/workspace/3rdparty/ozo/include/ozo/io/ostream.h:65:40: note: candidate: ‘template<class T> ozo::Require<HanaSequence<T>, ozo::ostream&> ozo::ostream::write(const T&)’
   65 |     Require<HanaSequence<T>, ostream&> write(const T& in) {
      |                                        ^~~~~
/workspace/3rdparty/ozo/include/ozo/io/ostream.h:65:40: note:   template argument deduction/substitution failed:
/workspace/3rdparty/ozo/include/ozo/io/ostream.h:71:38: note: candidate: ‘template<class T> ozo::Require<HanaStruct<T>, ozo::ostream&> ozo::ostream::write(const T&)’
   71 |     Require<HanaStruct<T>, ostream&> write(const T& in) {
      |                                      ^~~~~
/workspace/3rdparty/ozo/include/ozo/io/ostream.h:71:38: note:   template argument deduction/substitution failed:
In file included from /workspace/3rdparty/ozo/include/ozo/io/send.h:6,
                 from /workspace/3rdparty/ozo/include/ozo/ext/std/nullopt_t.h:5,
                 from /workspace/3rdparty/ozo/include/ozo/ext/std.h:12,
                 from /workspace/3rdparty/ozo/include/ozo/io/binary_query.h:3,
                 from /workspace/3rdparty/ozo/include/ozo/impl/io.h:6,
                 from /workspace/3rdparty/ozo/include/ozo/impl/async_request.h:6,
                 from /workspace/3rdparty/ozo/include/ozo/request.h:3,
                 from /workspace/inc/application/db/request.h:7,
                 from /workspace/inc/application/db/request_pipeline.h:7,
                 from /workspace/inc/application/controller/device_configuration_view.h:10,
                 from /workspace/lib/controller/device_configuration_view.cpp:5:
/workspace/3rdparty/ozo/include/ozo/io/ostream.h: In instantiation of ‘ozo::Require<(Integral<T> && (sizeof (T) != 1)), ozo::ostream&> ozo::ostream::write(T) [with T = int; ozo::Require<(Integral<T> && (sizeof (T) != 1)), ozo::ostream&> = ozo::ostream&]’:
/workspace/3rdparty/ozo/include/ozo/io/ostream.h:81:45:   required from ‘ozo::ostream& ozo::write(ozo::ostream&, Ts&& ...) [with Ts = {int}]’
/workspace/3rdparty/ozo/include/ozo/io/send.h:112:10:   required from ‘ozo::ostream& ozo::send_data_frame(ozo::ostream&, const OidMap&, const In&) [with OidMap = ozo::oid_map_t<>; In = application::BasicSharedString<char>]’
/workspace/3rdparty/ozo/include/ozo/io/array.h:121:66:   required from ‘ozo::detail::send_array_impl<T>::apply(ozo::ostream&, const OidMap&, const T&) [with OidMap = ozo::oid_map_t<>; T = std::vector<application::BasicSharedString<char> >]::<lambda(const auto:19&)> [with auto:19 = application::BasicSharedString<char>]’
/usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/include/g++-v9/bits/stl_algo.h:3876:5:   required from ‘_Funct std::for_each(_IIter, _IIter, _Funct) [with _IIter = __gnu_cxx::__normal_iterator<const application::BasicSharedString<char>*, std::vector<application::BasicSharedString<char> > >; _Funct = ozo::detail::send_array_impl<T>::apply(ozo::ostream&, const OidMap&, const T&) [with OidMap = ozo::oid_map_t<>; T = std::vector<application::BasicSharedString<char> >]::<lambda(const auto:19&)>]’
/usr/include/boost/range/algorithm/for_each.hpp:102:6:   required from ‘UnaryFunction boost::range::for_each(const SinglePassRange&, UnaryFunction) [with SinglePassRange = std::vector<application::BasicSharedString<char> >; UnaryFunction = ozo::detail::send_array_impl<T>::apply(ozo::ostream&, const OidMap&, const T&) [with OidMap = ozo::oid_map_t<>; T = std::vector<application::BasicSharedString<char> >]::<lambda(const auto:19&)>]’
/workspace/3rdparty/ozo/include/ozo/io/array.h:121:24:   [ skipping 49 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/boost/asio/async_result.hpp:364:25:   required from ‘typename std::enable_if<boost::asio::detail::async_result_has_initiate_memfn<CompletionToken, Signature>::value, decltype (boost::asio::async_result<typename std::decay<_Tp>::type, Signature>::initiate(declval<Initiation&&>(), declval<CompletionToken&&>(), (declval<Args&>)()...))>::type boost::asio::async_initiate(Initiation&&, CompletionToken&, Args&& ...) [with CompletionToken = application::impl::RequestWrapper<std::vector<application::DeviceConfig, std::allocator<application::DeviceConfig> >, application::RequestPipeline<RETURN_T, PARAMS_T>::request_impl(std::any) [with RETURN_T = application::DeviceConfig; PARAMS_T = {application::BasicSharedString<char>}]::<lambda(ozo::error_code, auto:45, std::vector<application::DeviceConfig, std::allocator<application::DeviceConfig> >)> >; Signature = void(boost::system::error_code, std::shared_ptr<ozo::pooled_connection<yamail::resource_pool::handle<ozo::connection_rep<ozo::oid_map_t<>, ozo::none_t> >, boost::asio::io_context::executor_type> >); Initiation = ozo::detail::initiate_async_request; Args = {ozo::connection_provider<ozo::connection_pool<ozo::connection_info<ozo::oid_map_t<>, ozo::none_t> >&>, std::chrono::duration<long int, std::ratio<1, 1> >&, ozo::impl::query<std::basic_string_view<char, std::char_traits<char> >, std::reference_wrapper<std::vector<application::BasicSharedString<char>, std::allocator<application::BasicSharedString<char> > > > >, std::back_insert_iterator<std::vector<application::DeviceConfig, std::allocator<application::DeviceConfig> > >}; typename std::enable_if<boost::asio::detail::async_result_has_initiate_memfn<CompletionToken, Signature>::value, decltype (boost::asio::async_result<typename std::decay<_Tp>::type, Signature>::initiate(declval<Initiation&&>(), declval<CompletionToken&&>(), (declval<Args&>)()...))>::type = void]’
/workspace/3rdparty/ozo/include/ozo/request.h:94:69:   required from ‘decltype(auto) ozo::request_op<Initiator>::operator()(P&&, Q&&, TimeConstraint, Out, CompletionToken&&) const [with P = ozo::connection_provider<ozo::connection_pool<ozo::connection_info<> >&>; Q = ozo::impl::query<std::basic_string_view<char>, std::reference_wrapper<std::vector<application::BasicSharedString<char>, std::allocator<application::BasicSharedString<char> > > > >; TimeConstraint = std::chrono::duration<long int>; Out = std::back_insert_iterator<std::vector<application::DeviceConfig, std::allocator<application::DeviceConfig> > >; CompletionToken = application::impl::RequestWrapper<std::vector<application::DeviceConfig, std::allocator<application::DeviceConfig> >, application::RequestPipeline<RETURN_T, PARAMS_T>::request_impl(std::any) [with RETURN_T = application::DeviceConfig; PARAMS_T = {application::BasicSharedString<char>}]::<lambda(ozo::error_code, auto:45, std::vector<application::DeviceConfig, std::allocator<application::DeviceConfig> >)> >; Initiator = ozo::detail::initiate_async_request]’
/workspace/inc/application/db/request.h:87:24:   required from ‘decltype(auto) application::request(CONNECTION_T&&, QUERY_T&&, TIMEOUT_T&&, HANDLER_T&&) [with RETURN_T = std::vector<application::DeviceConfig, std::allocator<application::DeviceConfig> >; CONNECTION_T = ozo::connection_provider<ozo::connection_pool<ozo::connection_info<> >&>; QUERY_T = ozo::impl::query<std::basic_string_view<char>, std::reference_wrapper<std::vector<application::BasicSharedString<char>, std::allocator<application::BasicSharedString<char> > > > >; TIMEOUT_T = std::chrono::duration<long int>; HANDLER_T = application::RequestPipeline<RETURN_T, PARAMS_T>::request_impl(std::any) [with RETURN_T = application::DeviceConfig; PARAMS_T = {application::BasicSharedString<char>}]::<lambda(ozo::error_code, auto:45, std::vector<application::DeviceConfig, std::allocator<application::DeviceConfig> >)>]’
/workspace/inc/application/db/request_pipeline.h:248:47:   required from ‘void application::RequestPipeline<RETURN_T, PARAMS_T>::request_impl(std::any) [with RETURN_T = application::DeviceConfig; PARAMS_T = {application::BasicSharedString<char>}]’
/workspace/inc/application/db/request_pipeline.h:166:5:   required from ‘void application::RequestPipeline<RETURN_T, PARAMS_T>::request(std::any, application::RequestPipeline<RETURN_T, PARAMS_T>::Callback_t, ARGS_T&& ...) [with ARGS_T = {application::BasicSharedString<char>}; RETURN_T = application::DeviceConfig; PARAMS_T = {application::BasicSharedString<char>}; application::RequestPipeline<RETURN_T, PARAMS_T>::Callback_t = std::function<void(std::error_code, application::DeviceConfig)>]’
/workspace/lib/controller/device_configuration_view.cpp:24:105:   required from here
/workspace/3rdparty/ozo/include/ozo/io/ostream.h:51:25: error: no matching function for call to ‘ozo::ostream::write(ozo::detail::typed_buffer<int>&)’
   51 |         return write(buf);
      |                         ^
/workspace/3rdparty/ozo/include/ozo/io/ostream.h:25:14: note: candidate: ‘ozo::ostream& ozo::ostream::write(const char_type*, std::streamsize)’
   25 |     ostream& write(const char_type* s, std::streamsize n) {
      |              ^~~~~
/workspace/3rdparty/ozo/include/ozo/io/ostream.h:25:14: note:   candidate expects 2 arguments, 1 provided
/workspace/3rdparty/ozo/include/ozo/io/ostream.h:36:54: note: candidate: ‘template<class T> ozo::Require<(Integral<T> && (sizeof (T) == 1)), ozo::ostream&> ozo::ostream::write(T)’
   36 |     Require<Integral<T> && sizeof(T) == 1, ostream&> write(T in) {
      |                                                      ^~~~~
/workspace/3rdparty/ozo/include/ozo/io/ostream.h:36:54: note:   template argument deduction/substitution failed:
In file included from /usr/include/boost/hana/detail/decay.hpp:16,
                 from /usr/include/boost/hana/pair.hpp:16,
                 from /usr/include/boost/hana/detail/struct_macros.hpp:27,
                 from /usr/include/boost/hana/define_struct.hpp:15,
                 from /workspace/inc/application/controller/telemetry_config_interfaces.h:8,
                 from /workspace/inc/application/controller/device_configuration_view.h:7,
                 from /workspace/lib/controller/device_configuration_view.cpp:5:
/usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/include/g++-v9/type_traits: In substitution of ‘template<bool _Cond, class _Tp> using enable_if_t = typename std::enable_if::type [with bool _Cond = false; _Tp = ozo::ostream&]’:
/workspace/3rdparty/ozo/include/ozo/core/concept.h:56:7:   required by substitution of ‘template<bool Condition, class Type> using Require = std::enable_if_t<Condition, Type> [with bool Condition = (((bool)ozo::Integral<ozo::detail::typed_buffer<int> >) && (sizeof (ozo::detail::typed_buffer<int>) == 1)); Type = ozo::ostream&]’
/workspace/3rdparty/ozo/include/ozo/io/ostream.h:36:54:   required by substitution of ‘template<class T> ozo::Require<(Integral<T> && (sizeof (T) == 1)), ozo::ostream&> ozo::ostream::write(T) [with T = ozo::detail::typed_buffer<int>]’
/workspace/3rdparty/ozo/include/ozo/io/ostream.h:51:25:   required from ‘ozo::Require<(Integral<T> && (sizeof (T) != 1)), ozo::ostream&> ozo::ostream::write(T) [with T = int; ozo::Require<(Integral<T> && (sizeof (T) != 1)), ozo::ostream&> = ozo::ostream&]’
/workspace/3rdparty/ozo/include/ozo/io/ostream.h:81:45:   required from ‘ozo::ostream& ozo::write(ozo::ostream&, Ts&& ...) [with Ts = {int}]’
/workspace/3rdparty/ozo/include/ozo/io/send.h:112:10:   required from ‘ozo::ostream& ozo::send_data_frame(ozo::ostream&, const OidMap&, const In&) [with OidMap = ozo::oid_map_t<>; In = application::BasicSharedString<char>]’
/workspace/3rdparty/ozo/include/ozo/io/array.h:121:66:   [ skipping 52 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/boost/asio/async_result.hpp:364:25:   required from ‘typename std::enable_if<boost::asio::detail::async_result_has_initiate_memfn<CompletionToken, Signature>::value, decltype (boost::asio::async_result<typename std::decay<_Tp>::type, Signature>::initiate(declval<Initiation&&>(), declval<CompletionToken&&>(), (declval<Args&>)()...))>::type boost::asio::async_initiate(Initiation&&, CompletionToken&, Args&& ...) [with CompletionToken = application::impl::RequestWrapper<std::vector<application::DeviceConfig, std::allocator<application::DeviceConfig> >, application::RequestPipeline<RETURN_T, PARAMS_T>::request_impl(std::any) [with RETURN_T = application::DeviceConfig; PARAMS_T = {application::BasicSharedString<char>}]::<lambda(ozo::error_code, auto:45, std::vector<application::DeviceConfig, std::allocator<application::DeviceConfig> >)> >; Signature = void(boost::system::error_code, std::shared_ptr<ozo::pooled_connection<yamail::resource_pool::handle<ozo::connection_rep<ozo::oid_map_t<>, ozo::none_t> >, boost::asio::io_context::executor_type> >); Initiation = ozo::detail::initiate_async_request; Args = {ozo::connection_provider<ozo::connection_pool<ozo::connection_info<ozo::oid_map_t<>, ozo::none_t> >&>, std::chrono::duration<long int, std::ratio<1, 1> >&, ozo::impl::query<std::basic_string_view<char, std::char_traits<char> >, std::reference_wrapper<std::vector<application::BasicSharedString<char>, std::allocator<application::BasicSharedString<char> > > > >, std::back_insert_iterator<std::vector<application::DeviceConfig, std::allocator<application::DeviceConfig> > >}; typename std::enable_if<boost::asio::detail::async_result_has_initiate_memfn<CompletionToken, Signature>::value, decltype (boost::asio::async_result<typename std::decay<_Tp>::type, Signature>::initiate(declval<Initiation&&>(), declval<CompletionToken&&>(), (declval<Args&>)()...))>::type = void]’
/workspace/3rdparty/ozo/include/ozo/request.h:94:69:   required from ‘decltype(auto) ozo::request_op<Initiator>::operator()(P&&, Q&&, TimeConstraint, Out, CompletionToken&&) const [with P = ozo::connection_provider<ozo::connection_pool<ozo::connection_info<> >&>; Q = ozo::impl::query<std::basic_string_view<char>, std::reference_wrapper<std::vector<application::BasicSharedString<char>, std::allocator<application::BasicSharedString<char> > > > >; TimeConstraint = std::chrono::duration<long int>; Out = std::back_insert_iterator<std::vector<application::DeviceConfig, std::allocator<application::DeviceConfig> > >; CompletionToken = application::impl::RequestWrapper<std::vector<application::DeviceConfig, std::allocator<application::DeviceConfig> >, application::RequestPipeline<RETURN_T, PARAMS_T>::request_impl(std::any) [with RETURN_T = application::DeviceConfig; PARAMS_T = {application::BasicSharedString<char>}]::<lambda(ozo::error_code, auto:45, std::vector<application::DeviceConfig, std::allocator<application::DeviceConfig> >)> >; Initiator = ozo::detail::initiate_async_request]’
/workspace/inc/application/db/request.h:87:24:   required from ‘decltype(auto) application::request(CONNECTION_T&&, QUERY_T&&, TIMEOUT_T&&, HANDLER_T&&) [with RETURN_T = std::vector<application::DeviceConfig, std::allocator<application::DeviceConfig> >; CONNECTION_T = ozo::connection_provider<ozo::connection_pool<ozo::connection_info<> >&>; QUERY_T = ozo::impl::query<std::basic_string_view<char>, std::reference_wrapper<std::vector<application::BasicSharedString<char>, std::allocator<application::BasicSharedString<char> > > > >; TIMEOUT_T = std::chrono::duration<long int>; HANDLER_T = application::RequestPipeline<RETURN_T, PARAMS_T>::request_impl(std::any) [with RETURN_T = application::DeviceConfig; PARAMS_T = {application::BasicSharedString<char>}]::<lambda(ozo::error_code, auto:45, std::vector<application::DeviceConfig, std::allocator<application::DeviceConfig> >)>]’
/workspace/inc/application/db/request_pipeline.h:248:47:   required from ‘void application::RequestPipeline<RETURN_T, PARAMS_T>::request_impl(std::any) [with RETURN_T = application::DeviceConfig; PARAMS_T = {application::BasicSharedString<char>}]’
/workspace/inc/application/db/request_pipeline.h:166:5:   required from ‘void application::RequestPipeline<RETURN_T, PARAMS_T>::request(std::any, application::RequestPipeline<RETURN_T, PARAMS_T>::Callback_t, ARGS_T&& ...) [with ARGS_T = {application::BasicSharedString<char>}; RETURN_T = application::DeviceConfig; PARAMS_T = {application::BasicSharedString<char>}; application::RequestPipeline<RETURN_T, PARAMS_T>::Callback_t = std::function<void(std::error_code, application::DeviceConfig)>]’
/workspace/lib/controller/device_configuration_view.cpp:24:105:   required from here
/usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/include/g++-v9/type_traits:2384:11: error: no type named ‘type’ in ‘struct std::enable_if<false, ozo::ostream&>’
 2384 |     using enable_if_t = typename enable_if<_Cond, _Tp>::type;
      |           ^~~~~~~~~~~
In file included from /workspace/3rdparty/ozo/include/ozo/io/send.h:6,
                 from /workspace/3rdparty/ozo/include/ozo/ext/std/nullopt_t.h:5,
                 from /workspace/3rdparty/ozo/include/ozo/ext/std.h:12,
                 from /workspace/3rdparty/ozo/include/ozo/io/binary_query.h:3,
                 from /workspace/3rdparty/ozo/include/ozo/impl/io.h:6,
                 from /workspace/3rdparty/ozo/include/ozo/impl/async_request.h:6,
                 from /workspace/3rdparty/ozo/include/ozo/request.h:3,
                 from /workspace/inc/application/db/request.h:7,
                 from /workspace/inc/application/db/request_pipeline.h:7,
                 from /workspace/inc/application/controller/device_configuration_view.h:10,
                 from /workspace/lib/controller/device_configuration_view.cpp:5:
/workspace/3rdparty/ozo/include/ozo/io/ostream.h: In instantiation of ‘ozo::Require<(Integral<T> && (sizeof (T) != 1)), ozo::ostream&> ozo::ostream::write(T) [with T = int; ozo::Require<(Integral<T> && (sizeof (T) != 1)), ozo::ostream&> = ozo::ostream&]’:
/workspace/3rdparty/ozo/include/ozo/io/ostream.h:81:45:   required from ‘ozo::ostream& ozo::write(ozo::ostream&, Ts&& ...) [with Ts = {int}]’
/workspace/3rdparty/ozo/include/ozo/io/send.h:112:10:   required from ‘ozo::ostream& ozo::send_data_frame(ozo::ostream&, const OidMap&, const In&) [with OidMap = ozo::oid_map_t<>; In = application::BasicSharedString<char>]’
/workspace/3rdparty/ozo/include/ozo/io/array.h:121:66:   required from ‘ozo::detail::send_array_impl<T>::apply(ozo::ostream&, const OidMap&, const T&) [with OidMap = ozo::oid_map_t<>; T = std::vector<application::BasicSharedString<char> >]::<lambda(const auto:19&)> [with auto:19 = application::BasicSharedString<char>]’
/usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/include/g++-v9/bits/stl_algo.h:3876:5:   required from ‘_Funct std::for_each(_IIter, _IIter, _Funct) [with _IIter = __gnu_cxx::__normal_iterator<const application::BasicSharedString<char>*, std::vector<application::BasicSharedString<char> > >; _Funct = ozo::detail::send_array_impl<T>::apply(ozo::ostream&, const OidMap&, const T&) [with OidMap = ozo::oid_map_t<>; T = std::vector<application::BasicSharedString<char> >]::<lambda(const auto:19&)>]’
/usr/include/boost/range/algorithm/for_each.hpp:102:6:   required from ‘UnaryFunction boost::range::for_each(const SinglePassRange&, UnaryFunction) [with SinglePassRange = std::vector<application::BasicSharedString<char> >; UnaryFunction = ozo::detail::send_array_impl<T>::apply(ozo::ostream&, const OidMap&, const T&) [with OidMap = ozo::oid_map_t<>; T = std::vector<application::BasicSharedString<char> >]::<lambda(const auto:19&)>]’
/workspace/3rdparty/ozo/include/ozo/io/array.h:121:24:   [ skipping 49 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/boost/asio/async_result.hpp:364:25:   required from ‘typename std::enable_if<boost::asio::detail::async_result_has_initiate_memfn<CompletionToken, Signature>::value, decltype (boost::asio::async_result<typename std::decay<_Tp>::type, Signature>::initiate(declval<Initiation&&>(), declval<CompletionToken&&>(), (declval<Args&>)()...))>::type boost::asio::async_initiate(Initiation&&, CompletionToken&, Args&& ...) [with CompletionToken = application::impl::RequestWrapper<std::vector<application::DeviceConfig, std::allocator<application::DeviceConfig> >, application::RequestPipeline<RETURN_T, PARAMS_T>::request_impl(std::any) [with RETURN_T = application::DeviceConfig; PARAMS_T = {application::BasicSharedString<char>}]::<lambda(ozo::error_code, auto:45, std::vector<application::DeviceConfig, std::allocator<application::DeviceConfig> >)> >; Signature = void(boost::system::error_code, std::shared_ptr<ozo::pooled_connection<yamail::resource_pool::handle<ozo::connection_rep<ozo::oid_map_t<>, ozo::none_t> >, boost::asio::io_context::executor_type> >); Initiation = ozo::detail::initiate_async_request; Args = {ozo::connection_provider<ozo::connection_pool<ozo::connection_info<ozo::oid_map_t<>, ozo::none_t> >&>, std::chrono::duration<long int, std::ratio<1, 1> >&, ozo::impl::query<std::basic_string_view<char, std::char_traits<char> >, std::reference_wrapper<std::vector<application::BasicSharedString<char>, std::allocator<application::BasicSharedString<char> > > > >, std::back_insert_iterator<std::vector<application::DeviceConfig, std::allocator<application::DeviceConfig> > >}; typename std::enable_if<boost::asio::detail::async_result_has_initiate_memfn<CompletionToken, Signature>::value, decltype (boost::asio::async_result<typename std::decay<_Tp>::type, Signature>::initiate(declval<Initiation&&>(), declval<CompletionToken&&>(), (declval<Args&>)()...))>::type = void]’
/workspace/3rdparty/ozo/include/ozo/request.h:94:69:   required from ‘decltype(auto) ozo::request_op<Initiator>::operator()(P&&, Q&&, TimeConstraint, Out, CompletionToken&&) const [with P = ozo::connection_provider<ozo::connection_pool<ozo::connection_info<> >&>; Q = ozo::impl::query<std::basic_string_view<char>, std::reference_wrapper<std::vector<application::BasicSharedString<char>, std::allocator<application::BasicSharedString<char> > > > >; TimeConstraint = std::chrono::duration<long int>; Out = std::back_insert_iterator<std::vector<application::DeviceConfig, std::allocator<application::DeviceConfig> > >; CompletionToken = application::impl::RequestWrapper<std::vector<application::DeviceConfig, std::allocator<application::DeviceConfig> >, application::RequestPipeline<RETURN_T, PARAMS_T>::request_impl(std::any) [with RETURN_T = application::DeviceConfig; PARAMS_T = {application::BasicSharedString<char>}]::<lambda(ozo::error_code, auto:45, std::vector<application::DeviceConfig, std::allocator<application::DeviceConfig> >)> >; Initiator = ozo::detail::initiate_async_request]’
/workspace/inc/application/db/request.h:87:24:   required from ‘decltype(auto) application::request(CONNECTION_T&&, QUERY_T&&, TIMEOUT_T&&, HANDLER_T&&) [with RETURN_T = std::vector<application::DeviceConfig, std::allocator<application::DeviceConfig> >; CONNECTION_T = ozo::connection_provider<ozo::connection_pool<ozo::connection_info<> >&>; QUERY_T = ozo::impl::query<std::basic_string_view<char>, std::reference_wrapper<std::vector<application::BasicSharedString<char>, std::allocator<application::BasicSharedString<char> > > > >; TIMEOUT_T = std::chrono::duration<long int>; HANDLER_T = application::RequestPipeline<RETURN_T, PARAMS_T>::request_impl(std::any) [with RETURN_T = application::DeviceConfig; PARAMS_T = {application::BasicSharedString<char>}]::<lambda(ozo::error_code, auto:45, std::vector<application::DeviceConfig, std::allocator<application::DeviceConfig> >)>]’
/workspace/inc/application/db/request_pipeline.h:248:47:   required from ‘void application::RequestPipeline<RETURN_T, PARAMS_T>::request_impl(std::any) [with RETURN_T = application::DeviceConfig; PARAMS_T = {application::BasicSharedString<char>}]’
/workspace/inc/application/db/request_pipeline.h:166:5:   required from ‘void application::RequestPipeline<RETURN_T, PARAMS_T>::request(std::any, application::RequestPipeline<RETURN_T, PARAMS_T>::Callback_t, ARGS_T&& ...) [with ARGS_T = {application::BasicSharedString<char>}; RETURN_T = application::DeviceConfig; PARAMS_T = {application::BasicSharedString<char>}; application::RequestPipeline<RETURN_T, PARAMS_T>::Callback_t = std::function<void(std::error_code, application::DeviceConfig)>]’
/workspace/lib/controller/device_configuration_view.cpp:24:105:   required from here
/workspace/3rdparty/ozo/include/ozo/io/ostream.h:41:43: note: candidate: ‘template<class T> ozo::Require<RawDataReadable<T>, ozo::ostream&> ozo::ostream::write(const T&)’
   41 |     Require<RawDataReadable<T>, ostream&> write(const T& in) {
      |                                           ^~~~~
/workspace/3rdparty/ozo/include/ozo/io/ostream.h:41:43: note:   template argument deduction/substitution failed:
/workspace/3rdparty/ozo/include/ozo/io/ostream.h:48:54: note: candidate: ‘template<class T> ozo::Require<(Integral<T> && (sizeof (T) != 1)), ozo::ostream&> ozo::ostream::write(T)’
   48 |     Require<Integral<T> && sizeof(T) != 1, ostream&> write(T in) {
      |                                                      ^~~~~
/workspace/3rdparty/ozo/include/ozo/io/ostream.h:48:54: note:   template argument deduction/substitution failed:
/workspace/3rdparty/ozo/include/ozo/io/ostream.h:55:41: note: candidate: ‘template<class T> ozo::Require<FloatingPoint<T>, ozo::ostream&> ozo::ostream::write(T)’
   55 |     Require<FloatingPoint<T>, ostream&> write(T in) {
      |                                         ^~~~~
/workspace/3rdparty/ozo/include/ozo/io/ostream.h:55:41: note:   template argument deduction/substitution failed:
/workspace/3rdparty/ozo/include/ozo/io/ostream.h:59:14: note: candidate: ‘ozo::ostream& ozo::ostream::write(bool)’
   59 |     ostream& write(bool in) {
      |              ^~~~~
/workspace/3rdparty/ozo/include/ozo/io/ostream.h:59:25: note:   no known conversion for argument 1 from ‘ozo::detail::typed_buffer<int>’ to ‘bool’
   59 |     ostream& write(bool in) {
      |                    ~~~~~^~
/workspace/3rdparty/ozo/include/ozo/io/ostream.h:65:40: note: candidate: ‘template<class T> ozo::Require<HanaSequence<T>, ozo::ostream&> ozo::ostream::write(const T&)’
   65 |     Require<HanaSequence<T>, ostream&> write(const T& in) {
      |                                        ^~~~~
/workspace/3rdparty/ozo/include/ozo/io/ostream.h:65:40: note:   template argument deduction/substitution failed:
/workspace/3rdparty/ozo/include/ozo/io/ostream.h:71:38: note: candidate: ‘template<class T> ozo::Require<HanaStruct<T>, ozo::ostream&> ozo::ostream::write(const T&)’
   71 |     Require<HanaStruct<T>, ostream&> write(const T& in) {
      |                                      ^~~~~
/workspace/3rdparty/ozo/include/ozo/io/ostream.h:71:38: note:   template argument deduction/substitution failed:
gmake[2]: *** [lib/controller/CMakeFiles/controller.dir/build.make:89: lib/controller/CMakeFiles/controller.dir/telemetry_data_controller.cpp.o] Error 1
gmake[2]: *** Waiting for unfinished jobs....
gmake[2]: *** [lib/controller/CMakeFiles/controller.dir/build.make:76: lib/controller/CMakeFiles/controller.dir/device_configuration_view.cpp.o] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:1089: lib/controller/CMakeFiles/controller.dir/all] Error 2
gmake: *** [Makefile:130: all] Error 2
thed636 commented 4 years ago

Hi Michael!

Thanks for the feedback. It looks like there is something wrong with RawDataReadable<T> predicate. Could you please investigate it more precisely? Do OZO passes tests with GCC 9.2?

jonesmz commented 4 years ago

I will try the OZO test suite and report back.

jonesmz commented 4 years ago

Here is the output of the OZO test suite with gcc 9.2

jonesmz@mzj-mpp-workspace ~/ozo/build $ make -j$(nproc)
Scanning dependencies of target GoogleTest
[  2%] Creating directories for 'GoogleTest'
[  4%] Performing download step (git clone) for 'GoogleTest'
-- GoogleTest download command succeeded.  See also /home/jonesmz/ozo/build/tests/GoogleTest-prefix/src/GoogleTest-stamp/GoogleTest-download-*.log
[  8%] No update step for 'GoogleTest'
[  8%] No patch step for 'GoogleTest'
[ 10%] Performing configure step for 'GoogleTest'
-- GoogleTest configure command succeeded.  See also /home/jonesmz/ozo/build/tests/GoogleTest-prefix/src/GoogleTest-stamp/GoogleTest-configure-*.log
[ 12%] Performing build step for 'GoogleTest'
-- GoogleTest build command succeeded.  See also /home/jonesmz/ozo/build/tests/GoogleTest-prefix/src/GoogleTest-stamp/GoogleTest-build-*.log
[ 14%] Performing install step for 'GoogleTest'
[ 25%] Built target gtest
[ 50%] Built target gtest_main
[ 75%] Built target gmock
[100%] Built target gmock_main
Install the project...
-- Install configuration: ""
-- Installing: /home/jonesmz/ozo/build/tests/include
-- Installing: /home/jonesmz/ozo/build/tests/include/gmock
-- Installing: /home/jonesmz/ozo/build/tests/include/gmock/gmock-actions.h
-- Installing: /home/jonesmz/ozo/build/tests/include/gmock/gmock-cardinalities.h
-- Installing: /home/jonesmz/ozo/build/tests/include/gmock/gmock-function-mocker.h
-- Installing: /home/jonesmz/ozo/build/tests/include/gmock/gmock-generated-actions.h
-- Installing: /home/jonesmz/ozo/build/tests/include/gmock/gmock-generated-actions.h.pump
-- Installing: /home/jonesmz/ozo/build/tests/include/gmock/gmock-generated-function-mockers.h
-- Installing: /home/jonesmz/ozo/build/tests/include/gmock/gmock-generated-function-mockers.h.pump
-- Installing: /home/jonesmz/ozo/build/tests/include/gmock/gmock-generated-matchers.h
-- Installing: /home/jonesmz/ozo/build/tests/include/gmock/gmock-generated-matchers.h.pump
-- Installing: /home/jonesmz/ozo/build/tests/include/gmock/gmock-matchers.h
-- Installing: /home/jonesmz/ozo/build/tests/include/gmock/gmock-more-actions.h
-- Installing: /home/jonesmz/ozo/build/tests/include/gmock/gmock-more-matchers.h
-- Installing: /home/jonesmz/ozo/build/tests/include/gmock/gmock-nice-strict.h
-- Installing: /home/jonesmz/ozo/build/tests/include/gmock/gmock-spec-builders.h
-- Installing: /home/jonesmz/ozo/build/tests/include/gmock/gmock.h
-- Installing: /home/jonesmz/ozo/build/tests/include/gmock/internal
-- Installing: /home/jonesmz/ozo/build/tests/include/gmock/internal/custom
-- Installing: /home/jonesmz/ozo/build/tests/include/gmock/internal/custom/README.md
-- Installing: /home/jonesmz/ozo/build/tests/include/gmock/internal/custom/gmock-generated-actions.h
-- Installing: /home/jonesmz/ozo/build/tests/include/gmock/internal/custom/gmock-generated-actions.h.pump
-- Installing: /home/jonesmz/ozo/build/tests/include/gmock/internal/custom/gmock-matchers.h
-- Installing: /home/jonesmz/ozo/build/tests/include/gmock/internal/custom/gmock-port.h
-- Installing: /home/jonesmz/ozo/build/tests/include/gmock/internal/gmock-internal-utils.h
-- Installing: /home/jonesmz/ozo/build/tests/include/gmock/internal/gmock-port.h
-- Installing: /home/jonesmz/ozo/build/tests/include/gmock/internal/gmock-pp.h
-- Installing: /home/jonesmz/ozo/build/tests/lib64/libgmock.a
-- Installing: /home/jonesmz/ozo/build/tests/lib64/libgmock_main.a
-- Installing: /home/jonesmz/ozo/build/tests/lib64/pkgconfig/gmock.pc
-- Installing: /home/jonesmz/ozo/build/tests/lib64/pkgconfig/gmock_main.pc
-- Installing: /home/jonesmz/ozo/build/tests/lib64/cmake/GTest/GTestTargets.cmake
-- Installing: /home/jonesmz/ozo/build/tests/lib64/cmake/GTest/GTestTargets-noconfig.cmake
-- Installing: /home/jonesmz/ozo/build/tests/lib64/cmake/GTest/GTestConfigVersion.cmake
-- Installing: /home/jonesmz/ozo/build/tests/lib64/cmake/GTest/GTestConfig.cmake
-- Up-to-date: /home/jonesmz/ozo/build/tests/include
-- Installing: /home/jonesmz/ozo/build/tests/include/gtest
-- Installing: /home/jonesmz/ozo/build/tests/include/gtest/gtest-death-test.h
-- Installing: /home/jonesmz/ozo/build/tests/include/gtest/gtest-matchers.h
-- Installing: /home/jonesmz/ozo/build/tests/include/gtest/gtest-message.h
-- Installing: /home/jonesmz/ozo/build/tests/include/gtest/gtest-param-test.h
-- Installing: /home/jonesmz/ozo/build/tests/include/gtest/gtest-printers.h
-- Installing: /home/jonesmz/ozo/build/tests/include/gtest/gtest-spi.h
-- Installing: /home/jonesmz/ozo/build/tests/include/gtest/gtest-test-part.h
-- Installing: /home/jonesmz/ozo/build/tests/include/gtest/gtest-typed-test.h
-- Installing: /home/jonesmz/ozo/build/tests/include/gtest/gtest.h
-- Installing: /home/jonesmz/ozo/build/tests/include/gtest/gtest_pred_impl.h
-- Installing: /home/jonesmz/ozo/build/tests/include/gtest/gtest_prod.h
-- Installing: /home/jonesmz/ozo/build/tests/include/gtest/internal
-- Installing: /home/jonesmz/ozo/build/tests/include/gtest/internal/custom
-- Installing: /home/jonesmz/ozo/build/tests/include/gtest/internal/custom/README.md
-- Installing: /home/jonesmz/ozo/build/tests/include/gtest/internal/custom/gtest-port.h
-- Installing: /home/jonesmz/ozo/build/tests/include/gtest/internal/custom/gtest-printers.h
-- Installing: /home/jonesmz/ozo/build/tests/include/gtest/internal/custom/gtest.h
-- Installing: /home/jonesmz/ozo/build/tests/include/gtest/internal/gtest-death-test-internal.h
-- Installing: /home/jonesmz/ozo/build/tests/include/gtest/internal/gtest-filepath.h
-- Installing: /home/jonesmz/ozo/build/tests/include/gtest/internal/gtest-internal.h
-- Installing: /home/jonesmz/ozo/build/tests/include/gtest/internal/gtest-param-util.h
-- Installing: /home/jonesmz/ozo/build/tests/include/gtest/internal/gtest-port-arch.h
-- Installing: /home/jonesmz/ozo/build/tests/include/gtest/internal/gtest-port.h
-- Installing: /home/jonesmz/ozo/build/tests/include/gtest/internal/gtest-string.h
-- Installing: /home/jonesmz/ozo/build/tests/include/gtest/internal/gtest-type-util.h
-- Installing: /home/jonesmz/ozo/build/tests/include/gtest/internal/gtest-type-util.h.pump
-- Installing: /home/jonesmz/ozo/build/tests/lib64/libgtest.a
-- Installing: /home/jonesmz/ozo/build/tests/lib64/libgtest_main.a
-- Installing: /home/jonesmz/ozo/build/tests/lib64/pkgconfig/gtest.pc
-- Installing: /home/jonesmz/ozo/build/tests/lib64/pkgconfig/gtest_main.pc
[ 16%] Completed 'GoogleTest'
[ 16%] Built target GoogleTest
Scanning dependencies of target ozo_tests
[ 18%] Building CXX object tests/CMakeFiles/ozo_tests.dir/impl/async_connect.cpp.o
[ 20%] Building CXX object tests/CMakeFiles/ozo_tests.dir/binary_deserialization.cpp.o
[ 22%] Building CXX object tests/CMakeFiles/ozo_tests.dir/binary_serialization.cpp.o
[ 27%] Building CXX object tests/CMakeFiles/ozo_tests.dir/binary_query.cpp.o
[ 27%] Building CXX object tests/CMakeFiles/ozo_tests.dir/bind.cpp.o
[ 29%] Building CXX object tests/CMakeFiles/ozo_tests.dir/composite.cpp.o
[ 31%] Building CXX object tests/CMakeFiles/ozo_tests.dir/connection.cpp.o
[ 33%] Building CXX object tests/CMakeFiles/ozo_tests.dir/connection_info.cpp.o
[ 35%] Building CXX object tests/CMakeFiles/ozo_tests.dir/connection_pool.cpp.o
[ 37%] Building CXX object tests/CMakeFiles/ozo_tests.dir/query_builder.cpp.o
[ 39%] Building CXX object tests/CMakeFiles/ozo_tests.dir/type_traits.cpp.o
[ 41%] Building CXX object tests/CMakeFiles/ozo_tests.dir/query_conf.cpp.o
[ 43%] Building CXX object tests/CMakeFiles/ozo_tests.dir/result.cpp.o
[ 45%] Building CXX object tests/CMakeFiles/ozo_tests.dir/concept.cpp.o
[ 47%] Building CXX object tests/CMakeFiles/ozo_tests.dir/deadline.cpp.o
[ 50%] Building CXX object tests/CMakeFiles/ozo_tests.dir/impl/async_send_query_params.cpp.o
[ 52%] Building CXX object tests/CMakeFiles/ozo_tests.dir/none.cpp.o
[ 54%] Building CXX object tests/CMakeFiles/ozo_tests.dir/error.cpp.o
[ 56%] Building CXX object tests/CMakeFiles/ozo_tests.dir/impl/async_get_result.cpp.o
[ 58%] Building CXX object tests/CMakeFiles/ozo_tests.dir/detail/base36.cpp.o
[ 60%] Building CXX object tests/CMakeFiles/ozo_tests.dir/detail/functional.cpp.o
[ 62%] Building CXX object tests/CMakeFiles/ozo_tests.dir/detail/begin_statement_builder.cpp.o
[ 64%] Building CXX object tests/CMakeFiles/ozo_tests.dir/detail/timeout_handler.cpp.o
[ 66%] Building CXX object tests/CMakeFiles/ozo_tests.dir/detail/make_copyable.cpp.o
[ 68%] Building CXX object tests/CMakeFiles/ozo_tests.dir/impl/request_oid_map.cpp.o
In file included from /home/jonesmz/ozo/tests/query_builder.cpp:1:
/home/jonesmz/ozo/include/ozo/query_builder.h:187:16: error: ISO C++ did not adopt string literal operator templates taking an argument pack of characters [-Werror=pedantic]
  187 | constexpr auto operator "" _SQL() {
      |                ^~~~~~~~
In file included from /home/jonesmz/ozo/include/ozo/detail/begin_statement_builder.h:13,
                 from /home/jonesmz/ozo/tests/detail/begin_statement_builder.cpp:1:
/home/jonesmz/ozo/include/ozo/query_builder.h:187:16: error: ISO C++ did not adopt string literal operator templates taking an argument pack of characters [-Werror=pedantic]
  187 | constexpr auto operator "" _SQL() {
      |                ^~~~~~~~
[ 70%] Building CXX object tests/CMakeFiles/ozo_tests.dir/impl/request_oid_map_handler.cpp.o
[ 72%] Building CXX object tests/CMakeFiles/ozo_tests.dir/impl/async_start_transaction.cpp.o
[ 75%] Building CXX object tests/CMakeFiles/ozo_tests.dir/impl/async_end_transaction.cpp.o
[ 77%] Building CXX object tests/CMakeFiles/ozo_tests.dir/impl/transaction.cpp.o
In file included from /home/jonesmz/ozo/include/ozo/impl/async_request.h:9,
                 from /home/jonesmz/ozo/include/ozo/impl/request_oid_map.h:3,
                 from /home/jonesmz/ozo/include/ozo/impl/async_connect.h:7,
                 from /home/jonesmz/ozo/include/ozo/connection_info.h:5,
                 from /home/jonesmz/ozo/tests/connection_info.cpp:1:
/home/jonesmz/ozo/include/ozo/query_builder.h:187:16: error: ISO C++ did not adopt string literal operator templates taking an argument pack of characters [-Werror=pedantic]
  187 | constexpr auto operator "" _SQL() {
      |                ^~~~~~~~
[ 79%] Building CXX object tests/CMakeFiles/ozo_tests.dir/transaction_status.cpp.o
In file included from /home/jonesmz/ozo/include/ozo/io/send.h:6,
                 from /home/jonesmz/ozo/tests/binary_serialization.cpp:1:
/home/jonesmz/ozo/include/ozo/io/ostream.h: In instantiation of ‘ozo::Require<(Integral<T> && (sizeof (T) != 1)), ozo::ostream&> ozo::ostream::write(T) [with T = unsigned int; ozo::Require<(Integral<T> && (sizeof (T) != 1)), ozo::ostream&> = ozo::ostream&]’:
/home/jonesmz/ozo/include/ozo/io/ostream.h:81:45:   required from ‘ozo::ostream& ozo::write(ozo::ostream&, Ts&& ...) [with Ts = {unsigned int}]’
/home/jonesmz/ozo/include/ozo/io/send.h:132:10:   required from ‘ozo::ostream& ozo::send_frame(ozo::ostream&, const OidMap&, const In&) [with OidMap = ozo::oid_map_t<>; In = ozo::strong_typedef_wrapper<std::vector<char>, ozo::pg::bytea_strong_typedef_tag>]’
/home/jonesmz/ozo/tests/binary_serialization.cpp:142:73:   required from here
/home/jonesmz/ozo/include/ozo/io/ostream.h:51:25: error: no matching function for call to ‘ozo::ostream::write(ozo::detail::typed_buffer<unsigned int>&)’
   51 |         return write(buf);
      |                         ^
/home/jonesmz/ozo/include/ozo/io/ostream.h:25:14: note: candidate: ‘ozo::ostream& ozo::ostream::write(const char_type*, std::streamsize)’
   25 |     ostream& write(const char_type* s, std::streamsize n) {
      |              ^~~~~
/home/jonesmz/ozo/include/ozo/io/ostream.h:25:14: note:   candidate expects 2 arguments, 1 provided
/home/jonesmz/ozo/include/ozo/io/ostream.h:36:54: note: candidate: ‘template<class T> ozo::Require<(Integral<T> && (sizeof (T) == 1)), ozo::ostream&> ozo::ostream::write(T)’
   36 |     Require<Integral<T> && sizeof(T) == 1, ostream&> write(T in) {
      |                                                      ^~~~~
/home/jonesmz/ozo/include/ozo/io/ostream.h:36:54: note:   template argument deduction/substitution failed:
In file included from /usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/include/g++-v9/bits/move.h:55,
                 from /usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/include/g++-v9/bits/stl_pair.h:59,
                 from /usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/include/g++-v9/utility:70,
                 from /usr/include/boost/fusion/support/config.hpp:13,
                 from /usr/include/boost/fusion/adapted.hpp:11,
                 from /home/jonesmz/ozo/include/ozo/core/concept.h:7,
                 from /home/jonesmz/ozo/include/ozo/io/send.h:3,
                 from /home/jonesmz/ozo/tests/binary_serialization.cpp:1:
/usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/include/g++-v9/type_traits: In substitution of ‘template<bool _Cond, class _Tp> using enable_if_t = typename std::enable_if::type [with bool _Cond = false; _Tp = ozo::ostream&]’:
/home/jonesmz/ozo/include/ozo/core/concept.h:56:7:   required by substitution of ‘template<bool Condition, class Type> using Require = std::enable_if_t<Condition, Type> [with bool Condition = (((bool)ozo::Integral<ozo::detail::typed_buffer<unsigned int> >) && (sizeof (ozo::detail::typed_buffer<unsigned int>) == 1)); Type = ozo::ostream&]’
/home/jonesmz/ozo/include/ozo/io/ostream.h:36:54:   required by substitution of ‘template<class T> ozo::Require<(Integral<T> && (sizeof (T) == 1)), ozo::ostream&> ozo::ostream::write(T) [with T = ozo::detail::typed_buffer<unsigned int>]’
/home/jonesmz/ozo/include/ozo/io/ostream.h:51:25:   required from ‘ozo::Require<(Integral<T> && (sizeof (T) != 1)), ozo::ostream&> ozo::ostream::write(T) [with T = unsigned int; ozo::Require<(Integral<T> && (sizeof (T) != 1)), ozo::ostream&> = ozo::ostream&]’
/home/jonesmz/ozo/include/ozo/io/ostream.h:81:45:   required from ‘ozo::ostream& ozo::write(ozo::ostream&, Ts&& ...) [with Ts = {unsigned int}]’
/home/jonesmz/ozo/include/ozo/io/send.h:132:10:   required from ‘ozo::ostream& ozo::send_frame(ozo::ostream&, const OidMap&, const In&) [with OidMap = ozo::oid_map_t<>; In = ozo::strong_typedef_wrapper<std::vector<char>, ozo::pg::bytea_strong_typedef_tag>]’
/home/jonesmz/ozo/tests/binary_serialization.cpp:142:73:   required from here
/usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/include/g++-v9/type_traits:2384:11: error: no type named ‘type’ in ‘struct std::enable_if<false, ozo::ostream&>’
 2384 |     using enable_if_t = typename enable_if<_Cond, _Tp>::type;
      |           ^~~~~~~~~~~
In file included from /home/jonesmz/ozo/include/ozo/io/send.h:6,
                 from /home/jonesmz/ozo/tests/binary_serialization.cpp:1:
/home/jonesmz/ozo/include/ozo/io/ostream.h: In instantiation of ‘ozo::Require<(Integral<T> && (sizeof (T) != 1)), ozo::ostream&> ozo::ostream::write(T) [with T = unsigned int; ozo::Require<(Integral<T> && (sizeof (T) != 1)), ozo::ostream&> = ozo::ostream&]’:
/home/jonesmz/ozo/include/ozo/io/ostream.h:81:45:   required from ‘ozo::ostream& ozo::write(ozo::ostream&, Ts&& ...) [with Ts = {unsigned int}]’
/home/jonesmz/ozo/include/ozo/io/send.h:132:10:   required from ‘ozo::ostream& ozo::send_frame(ozo::ostream&, const OidMap&, const In&) [with OidMap = ozo::oid_map_t<>; In = ozo::strong_typedef_wrapper<std::vector<char>, ozo::pg::bytea_strong_typedef_tag>]’
/home/jonesmz/ozo/tests/binary_serialization.cpp:142:73:   required from here
/home/jonesmz/ozo/include/ozo/io/ostream.h:41:43: note: candidate: ‘template<class T> ozo::Require<RawDataReadable<T>, ozo::ostream&> ozo::ostream::write(const T&)’
   41 |     Require<RawDataReadable<T>, ostream&> write(const T& in) {
      |                                           ^~~~~
/home/jonesmz/ozo/include/ozo/io/ostream.h:41:43: note:   template argument deduction/substitution failed:
/home/jonesmz/ozo/include/ozo/io/ostream.h:48:54: note: candidate: ‘template<class T> ozo::Require<(Integral<T> && (sizeof (T) != 1)), ozo::ostream&> ozo::ostream::write(T)’
   48 |     Require<Integral<T> && sizeof(T) != 1, ostream&> write(T in) {
      |                                                      ^~~~~
/home/jonesmz/ozo/include/ozo/io/ostream.h:48:54: note:   template argument deduction/substitution failed:
/home/jonesmz/ozo/include/ozo/io/ostream.h:55:41: note: candidate: ‘template<class T> ozo::Require<FloatingPoint<T>, ozo::ostream&> ozo::ostream::write(T)’
   55 |     Require<FloatingPoint<T>, ostream&> write(T in) {
      |                                         ^~~~~
/home/jonesmz/ozo/include/ozo/io/ostream.h:55:41: note:   template argument deduction/substitution failed:
/home/jonesmz/ozo/include/ozo/io/ostream.h:59:14: note: candidate: ‘ozo::ostream& ozo::ostream::write(bool)’
   59 |     ostream& write(bool in) {
      |              ^~~~~
/home/jonesmz/ozo/include/ozo/io/ostream.h:59:25: note:   no known conversion for argument 1 from ‘ozo::detail::typed_buffer<unsigned int>’ to ‘bool’
   59 |     ostream& write(bool in) {
      |                    ~~~~~^~
/home/jonesmz/ozo/include/ozo/io/ostream.h:65:40: note: candidate: ‘template<class T> ozo::Require<HanaSequence<T>, ozo::ostream&> ozo::ostream::write(const T&)’
   65 |     Require<HanaSequence<T>, ostream&> write(const T& in) {
      |                                        ^~~~~
/home/jonesmz/ozo/include/ozo/io/ostream.h:65:40: note:   template argument deduction/substitution failed:
/home/jonesmz/ozo/include/ozo/io/ostream.h:71:38: note: candidate: ‘template<class T> ozo::Require<HanaStruct<T>, ozo::ostream&> ozo::ostream::write(const T&)’
   71 |     Require<HanaStruct<T>, ostream&> write(const T& in) {
      |                                      ^~~~~
/home/jonesmz/ozo/include/ozo/io/ostream.h:71:38: note:   template argument deduction/substitution failed:
/home/jonesmz/ozo/include/ozo/io/ostream.h: In instantiation of ‘ozo::Require<(Integral<T> && (sizeof (T) != 1)), ozo::ostream&> ozo::ostream::write(T) [with T = short int; ozo::Require<(Integral<T> && (sizeof (T) != 1)), ozo::ostream&> = ozo::ostream&]’:
/home/jonesmz/ozo/include/ozo/io/ostream.h:81:45:   required from ‘ozo::ostream& ozo::write(ozo::ostream&, Ts&& ...) [with Ts = {const short int&}]’
/home/jonesmz/ozo/include/ozo/io/send.h:56:21:   required from ‘static ozo::ostream& ozo::send_impl<In, <template-parameter-1-2> >::apply(ozo::ostream&, const OidMap&, const In&) [with OidMap = ozo::oid_map_t<>; In = short int; <template-parameter-1-2> = void]’
/home/jonesmz/ozo/include/ozo/io/send.h:94:69:   required from ‘ozo::ostream& ozo::send(ozo::ostream&, const OidMap&, const In&) [with OidMap = ozo::oid_map_t<>; In = short int]’
/home/jonesmz/ozo/tests/binary_serialization.cpp:28:44:   required from here
/home/jonesmz/ozo/include/ozo/io/ostream.h:51:25: error: no matching function for call to ‘ozo::ostream::write(ozo::detail::typed_buffer<short int>&)’
   51 |         return write(buf);
      |                         ^
/home/jonesmz/ozo/include/ozo/io/ostream.h:25:14: note: candidate: ‘ozo::ostream& ozo::ostream::write(const char_type*, std::streamsize)’
   25 |     ostream& write(const char_type* s, std::streamsize n) {
      |              ^~~~~
/home/jonesmz/ozo/include/ozo/io/ostream.h:25:14: note:   candidate expects 2 arguments, 1 provided
/home/jonesmz/ozo/include/ozo/io/ostream.h:36:54: note: candidate: ‘template<class T> ozo::Require<(Integral<T> && (sizeof (T) == 1)), ozo::ostream&> ozo::ostream::write(T)’
   36 |     Require<Integral<T> && sizeof(T) == 1, ostream&> write(T in) {
      |                                                      ^~~~~
/home/jonesmz/ozo/include/ozo/io/ostream.h:36:54: note:   template argument deduction/substitution failed:
/home/jonesmz/ozo/include/ozo/io/ostream.h:41:43: note: candidate: ‘template<class T> ozo::Require<RawDataReadable<T>, ozo::ostream&> ozo::ostream::write(const T&)’
   41 |     Require<RawDataReadable<T>, ostream&> write(const T& in) {
      |                                           ^~~~~
/home/jonesmz/ozo/include/ozo/io/ostream.h:41:43: note:   template argument deduction/substitution failed:
/home/jonesmz/ozo/include/ozo/io/ostream.h:48:54: note: candidate: ‘template<class T> ozo::Require<(Integral<T> && (sizeof (T) != 1)), ozo::ostream&> ozo::ostream::write(T)’
   48 |     Require<Integral<T> && sizeof(T) != 1, ostream&> write(T in) {
      |                                                      ^~~~~
/home/jonesmz/ozo/include/ozo/io/ostream.h:48:54: note:   template argument deduction/substitution failed:
/home/jonesmz/ozo/include/ozo/io/ostream.h:55:41: note: candidate: ‘template<class T> ozo::Require<FloatingPoint<T>, ozo::ostream&> ozo::ostream::write(T)’
   55 |     Require<FloatingPoint<T>, ostream&> write(T in) {
      |                                         ^~~~~
/home/jonesmz/ozo/include/ozo/io/ostream.h:55:41: note:   template argument deduction/substitution failed:
/home/jonesmz/ozo/include/ozo/io/ostream.h:59:14: note: candidate: ‘ozo::ostream& ozo::ostream::write(bool)’
   59 |     ostream& write(bool in) {
      |              ^~~~~
/home/jonesmz/ozo/include/ozo/io/ostream.h:59:25: note:   no known conversion for argument 1 from ‘ozo::detail::typed_buffer<short int>’ to ‘bool’
   59 |     ostream& write(bool in) {
      |                    ~~~~~^~
/home/jonesmz/ozo/include/ozo/io/ostream.h:65:40: note: candidate: ‘template<class T> ozo::Require<HanaSequence<T>, ozo::ostream&> ozo::ostream::write(const T&)’
   65 |     Require<HanaSequence<T>, ostream&> write(const T& in) {
      |                                        ^~~~~
/home/jonesmz/ozo/include/ozo/io/ostream.h:65:40: note:   template argument deduction/substitution failed:
/home/jonesmz/ozo/include/ozo/io/ostream.h:71:38: note: candidate: ‘template<class T> ozo::Require<HanaStruct<T>, ozo::ostream&> ozo::ostream::write(const T&)’
   71 |     Require<HanaStruct<T>, ostream&> write(const T& in) {
      |                                      ^~~~~
/home/jonesmz/ozo/include/ozo/io/ostream.h:71:38: note:   template argument deduction/substitution failed:
/home/jonesmz/ozo/include/ozo/io/ostream.h: In instantiation of ‘ozo::Require<(Integral<T> && (sizeof (T) != 1)), ozo::ostream&> ozo::ostream::write(T) [with T = int; ozo::Require<(Integral<T> && (sizeof (T) != 1)), ozo::ostream&> = ozo::ostream&]’:
/home/jonesmz/ozo/include/ozo/io/ostream.h:81:45:   required from ‘ozo::ostream& ozo::write(ozo::ostream&, Ts&& ...) [with Ts = {const int&}]’
/home/jonesmz/ozo/include/ozo/io/send.h:56:21:   required from ‘static ozo::ostream& ozo::send_impl<In, <template-parameter-1-2> >::apply(ozo::ostream&, const OidMap&, const In&) [with OidMap = ozo::oid_map_t<>; In = int; <template-parameter-1-2> = void]’
/home/jonesmz/ozo/include/ozo/io/send.h:94:69:   required from ‘ozo::ostream& ozo::send(ozo::ostream&, const OidMap&, const In&) [with OidMap = ozo::oid_map_t<>; In = int]’
/home/jonesmz/ozo/tests/binary_serialization.cpp:33:44:   required from here
/home/jonesmz/ozo/include/ozo/io/ostream.h:51:25: error: no matching function for call to ‘ozo::ostream::write(ozo::detail::typed_buffer<int>&)’
   51 |         return write(buf);
      |                         ^
/home/jonesmz/ozo/include/ozo/io/ostream.h:25:14: note: candidate: ‘ozo::ostream& ozo::ostream::write(const char_type*, std::streamsize)’
   25 |     ostream& write(const char_type* s, std::streamsize n) {
      |              ^~~~~
/home/jonesmz/ozo/include/ozo/io/ostream.h:25:14: note:   candidate expects 2 arguments, 1 provided
/home/jonesmz/ozo/include/ozo/io/ostream.h:36:54: note: candidate: ‘template<class T> ozo::Require<(Integral<T> && (sizeof (T) == 1)), ozo::ostream&> ozo::ostream::write(T)’
   36 |     Require<Integral<T> && sizeof(T) == 1, ostream&> write(T in) {
      |                                                      ^~~~~
/home/jonesmz/ozo/include/ozo/io/ostream.h:36:54: note:   template argument deduction/substitution failed:
/home/jonesmz/ozo/include/ozo/io/ostream.h:41:43: note: candidate: ‘template<class T> ozo::Require<RawDataReadable<T>, ozo::ostream&> ozo::ostream::write(const T&)’
   41 |     Require<RawDataReadable<T>, ostream&> write(const T& in) {
      |                                           ^~~~~
/home/jonesmz/ozo/include/ozo/io/ostream.h:41:43: note:   template argument deduction/substitution failed:
/home/jonesmz/ozo/include/ozo/io/ostream.h:48:54: note: candidate: ‘template<class T> ozo::Require<(Integral<T> && (sizeof (T) != 1)), ozo::ostream&> ozo::ostream::write(T)’
   48 |     Require<Integral<T> && sizeof(T) != 1, ostream&> write(T in) {
      |                                                      ^~~~~
/home/jonesmz/ozo/include/ozo/io/ostream.h:48:54: note:   template argument deduction/substitution failed:
/home/jonesmz/ozo/include/ozo/io/ostream.h:55:41: note: candidate: ‘template<class T> ozo::Require<FloatingPoint<T>, ozo::ostream&> ozo::ostream::write(T)’
   55 |     Require<FloatingPoint<T>, ostream&> write(T in) {
      |                                         ^~~~~
/home/jonesmz/ozo/include/ozo/io/ostream.h:55:41: note:   template argument deduction/substitution failed:
/home/jonesmz/ozo/include/ozo/io/ostream.h:59:14: note: candidate: ‘ozo::ostream& ozo::ostream::write(bool)’
   59 |     ostream& write(bool in) {
      |              ^~~~~
/home/jonesmz/ozo/include/ozo/io/ostream.h:59:25: note:   no known conversion for argument 1 from ‘ozo::detail::typed_buffer<int>’ to ‘bool’
   59 |     ostream& write(bool in) {
      |                    ~~~~~^~
/home/jonesmz/ozo/include/ozo/io/ostream.h:65:40: note: candidate: ‘template<class T> ozo::Require<HanaSequence<T>, ozo::ostream&> ozo::ostream::write(const T&)’
   65 |     Require<HanaSequence<T>, ostream&> write(const T& in) {
      |                                        ^~~~~
/home/jonesmz/ozo/include/ozo/io/ostream.h:65:40: note:   template argument deduction/substitution failed:
/home/jonesmz/ozo/include/ozo/io/ostream.h:71:38: note: candidate: ‘template<class T> ozo::Require<HanaStruct<T>, ozo::ostream&> ozo::ostream::write(const T&)’
   71 |     Require<HanaStruct<T>, ostream&> write(const T& in) {
      |                                      ^~~~~
/home/jonesmz/ozo/include/ozo/io/ostream.h:71:38: note:   template argument deduction/substitution failed:
/home/jonesmz/ozo/include/ozo/io/ostream.h: In instantiation of ‘ozo::Require<(Integral<T> && (sizeof (T) != 1)), ozo::ostream&> ozo::ostream::write(T) [with T = long int; ozo::Require<(Integral<T> && (sizeof (T) != 1)), ozo::ostream&> = ozo::ostream&]’:
/home/jonesmz/ozo/include/ozo/io/ostream.h:81:45:   required from ‘ozo::ostream& ozo::write(ozo::ostream&, Ts&& ...) [with Ts = {const long int&}]’
/home/jonesmz/ozo/include/ozo/io/send.h:56:21:   required from ‘static ozo::ostream& ozo::send_impl<In, <template-parameter-1-2> >::apply(ozo::ostream&, const OidMap&, const In&) [with OidMap = ozo::oid_map_t<>; In = long int; <template-parameter-1-2> = void]’
/home/jonesmz/ozo/include/ozo/io/send.h:94:69:   required from ‘ozo::ostream& ozo::send(ozo::ostream&, const OidMap&, const In&) [with OidMap = ozo::oid_map_t<>; In = long int]’
/home/jonesmz/ozo/tests/binary_serialization.cpp:38:44:   required from here
/home/jonesmz/ozo/include/ozo/io/ostream.h:51:25: error: no matching function for call to ‘ozo::ostream::write(ozo::detail::typed_buffer<long int>&)’
   51 |         return write(buf);
      |                         ^
/home/jonesmz/ozo/include/ozo/io/ostream.h:25:14: note: candidate: ‘ozo::ostream& ozo::ostream::write(const char_type*, std::streamsize)’
   25 |     ostream& write(const char_type* s, std::streamsize n) {
      |              ^~~~~
/home/jonesmz/ozo/include/ozo/io/ostream.h:25:14: note:   candidate expects 2 arguments, 1 provided
/home/jonesmz/ozo/include/ozo/io/ostream.h:36:54: note: candidate: ‘template<class T> ozo::Require<(Integral<T> && (sizeof (T) == 1)), ozo::ostream&> ozo::ostream::write(T)’
   36 |     Require<Integral<T> && sizeof(T) == 1, ostream&> write(T in) {
      |                                                      ^~~~~
/home/jonesmz/ozo/include/ozo/io/ostream.h:36:54: note:   template argument deduction/substitution failed:
/home/jonesmz/ozo/include/ozo/io/ostream.h:41:43: note: candidate: ‘template<class T> ozo::Require<RawDataReadable<T>, ozo::ostream&> ozo::ostream::write(const T&)’
   41 |     Require<RawDataReadable<T>, ostream&> write(const T& in) {
      |                                           ^~~~~
/home/jonesmz/ozo/include/ozo/io/ostream.h:41:43: note:   template argument deduction/substitution failed:
/home/jonesmz/ozo/include/ozo/io/ostream.h:48:54: note: candidate: ‘template<class T> ozo::Require<(Integral<T> && (sizeof (T) != 1)), ozo::ostream&> ozo::ostream::write(T)’
   48 |     Require<Integral<T> && sizeof(T) != 1, ostream&> write(T in) {
      |                                                      ^~~~~
/home/jonesmz/ozo/include/ozo/io/ostream.h:48:54: note:   template argument deduction/substitution failed:
/home/jonesmz/ozo/include/ozo/io/ostream.h:55:41: note: candidate: ‘template<class T> ozo::Require<FloatingPoint<T>, ozo::ostream&> ozo::ostream::write(T)’
   55 |     Require<FloatingPoint<T>, ostream&> write(T in) {
      |                                         ^~~~~
/home/jonesmz/ozo/include/ozo/io/ostream.h:55:41: note:   template argument deduction/substitution failed:
/home/jonesmz/ozo/include/ozo/io/ostream.h:59:14: note: candidate: ‘ozo::ostream& ozo::ostream::write(bool)’
   59 |     ostream& write(bool in) {
      |              ^~~~~
/home/jonesmz/ozo/include/ozo/io/ostream.h:59:25: note:   no known conversion for argument 1 from ‘ozo::detail::typed_buffer<long int>’ to ‘bool’
   59 |     ostream& write(bool in) {
      |                    ~~~~~^~
/home/jonesmz/ozo/include/ozo/io/ostream.h:65:40: note: candidate: ‘template<class T> ozo::Require<HanaSequence<T>, ozo::ostream&> ozo::ostream::write(const T&)’
   65 |     Require<HanaSequence<T>, ostream&> write(const T& in) {
      |                                        ^~~~~
/home/jonesmz/ozo/include/ozo/io/ostream.h:65:40: note:   template argument deduction/substitution failed:
/home/jonesmz/ozo/include/ozo/io/ostream.h:71:38: note: candidate: ‘template<class T> ozo::Require<HanaStruct<T>, ozo::ostream&> ozo::ostream::write(const T&)’
   71 |     Require<HanaStruct<T>, ostream&> write(const T& in) {
      |                                      ^~~~~
/home/jonesmz/ozo/include/ozo/io/ostream.h:71:38: note:   template argument deduction/substitution failed:
In file included from /home/jonesmz/ozo/include/ozo/io/send.h:6,
                 from /home/jonesmz/ozo/include/ozo/ext/std/nullopt_t.h:5,
                 from /home/jonesmz/ozo/include/ozo/ext/std.h:12,
                 from /home/jonesmz/ozo/include/ozo/io/binary_query.h:3,
                 from /home/jonesmz/ozo/tests/binary_query.cpp:1:
/home/jonesmz/ozo/include/ozo/io/ostream.h: In instantiation of ‘ozo::Require<(Integral<T> && (sizeof (T) != 1)), ozo::ostream&> ozo::ostream::write(T) [with T = int; ozo::Require<(Integral<T> && (sizeof (T) != 1)), ozo::ostream&> = ozo::ostream&]’:
/home/jonesmz/ozo/include/ozo/io/ostream.h:81:45:   required from ‘ozo::ostream& ozo::write(ozo::ostream&, Ts&& ...) [with Ts = {const int&}]’
/home/jonesmz/ozo/include/ozo/io/send.h:56:21:   required from ‘static ozo::ostream& ozo::send_impl<In, <template-parameter-1-2> >::apply(ozo::ostream&, const OidMap&, const In&) [with OidMap = ozo::oid_map_t<>; In = int; <template-parameter-1-2> = void]’
/home/jonesmz/ozo/include/ozo/io/send.h:94:69:   required from ‘ozo::ostream& ozo::send(ozo::ostream&, const OidMap&, const In&) [with OidMap = ozo::oid_map_t<>; In = int]’
/home/jonesmz/ozo/include/ozo/io/binary_query.h:162:60:   required from ‘ozo::binary_query::impl_type<Text, Params, OidMap, Allocator>::impl_type(Text, const Params&, const OidMap&, const Allocator&) [with Text = const char*; Params = boost::hana::tuple<bool, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >; OidMap = ozo::oid_map_t<>; Allocator = std::allocator<char>]::<lambda(auto:20&)> [with auto:20 = const int]’
/usr/include/boost/hana/for_each.hpp:46:45:   required from ‘constexpr void boost::hana::detail::on_each<F>::operator()(Xs&& ...) const [with Xs = {const bool&, const int&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; F = ozo::binary_query::impl_type<Text, Params, OidMap, Allocator>::impl_type(Text, const Params&, const OidMap&, const Allocator&) [with Text = const char*; Params = boost::hana::tuple<bool, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >; OidMap = ozo::oid_map_t<>; Allocator = std::allocator<char>]::<lambda(auto:20&)>*]’
/usr/include/boost/hana/basic_tuple.hpp:115:39:   [ skipping 11 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/include/g++-v9/bits/shared_ptr_base.h:1344:71:   required from ‘std::__shared_ptr<_Tp, _Lp>::__shared_ptr(std::_Sp_alloc_shared_tag<_Tp>, _Args&& ...) [with _Alloc = std::allocator<char>; _Args = {const char*, const boost::hana::tuple<bool, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, const ozo::oid_map_t<>&, const std::allocator<char>&}; _Tp = ozo::binary_query::impl_type<const char*, boost::hana::tuple<bool, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, ozo::oid_map_t<>, std::allocator<char> >; __gnu_cxx::_Lock_policy _Lp = __gnu_cxx::_S_atomic]’
/usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/include/g++-v9/bits/shared_ptr.h:359:59:   required from ‘std::shared_ptr<_Tp>::shared_ptr(std::_Sp_alloc_shared_tag<_Tp>, _Args&& ...) [with _Alloc = std::allocator<char>; _Args = {const char*, const boost::hana::tuple<bool, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, const ozo::oid_map_t<>&, const std::allocator<char>&}; _Tp = ozo::binary_query::impl_type<const char*, boost::hana::tuple<bool, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, ozo::oid_map_t<>, std::allocator<char> >]’
/usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/include/g++-v9/bits/shared_ptr.h:701:14:   required from ‘std::shared_ptr<_Tp> std::allocate_shared(const _Alloc&, _Args&& ...) [with _Tp = ozo::binary_query::impl_type<const char*, boost::hana::tuple<bool, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, ozo::oid_map_t<>, std::allocator<char> >; _Alloc = std::allocator<char>; _Args = {const char*, const boost::hana::tuple<bool, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, const ozo::oid_map_t<>&, const std::allocator<char>&}]’
/home/jonesmz/ozo/include/ozo/io/binary_query.h:50:76:   required from ‘ozo::binary_query::binary_query(Text, const Params&, const OidMap&, const Allocator&) [with Text = const char*; Params = boost::hana::tuple<bool, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >; OidMap = ozo::oid_map_t<>; Allocator = std::allocator<char>]’
/home/jonesmz/ozo/tests/binary_query.cpp:17:17:   required from ‘auto {anonymous}::make_binary_query(Text&&, const Params&) [with Text = const char (&)[1]; Params = boost::hana::tuple<bool, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]’
/home/jonesmz/ozo/tests/binary_query.cpp:28:93:   required from here
/home/jonesmz/ozo/include/ozo/io/ostream.h:51:25: error: no matching function for call to ‘ozo::ostream::write(ozo::detail::typed_buffer<int>&)’
   51 |         return write(buf);
      |                         ^
/home/jonesmz/ozo/include/ozo/io/ostream.h:25:14: note: candidate: ‘ozo::ostream& ozo::ostream::write(const char_type*, std::streamsize)’
   25 |     ostream& write(const char_type* s, std::streamsize n) {
      |              ^~~~~
/home/jonesmz/ozo/include/ozo/io/ostream.h:25:14: note:   candidate expects 2 arguments, 1 provided
/home/jonesmz/ozo/include/ozo/io/ostream.h:36:54: note: candidate: ‘template<class T> ozo::Require<(Integral<T> && (sizeof (T) == 1)), ozo::ostream&> ozo::ostream::write(T)’
   36 |     Require<Integral<T> && sizeof(T) == 1, ostream&> write(T in) {
      |                                                      ^~~~~
/home/jonesmz/ozo/include/ozo/io/ostream.h:36:54: note:   template argument deduction/substitution failed:
In file included from /usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/include/g++-v9/bits/stl_iterator_base_types.h:67,
                 from /usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/include/g++-v9/iterator:61,
                 from /usr/include/boost/operators.hpp:98,
                 from /home/jonesmz/ozo/include/ozo/core/strong_typedef.h:3,
                 from /home/jonesmz/ozo/include/ozo/type_traits.h:4,
                 from /home/jonesmz/ozo/include/ozo/ext/std/list.h:3,
                 from /home/jonesmz/ozo/include/ozo/ext/std.h:11,
                 from /home/jonesmz/ozo/include/ozo/io/binary_query.h:3,
                 from /home/jonesmz/ozo/tests/binary_query.cpp:1:
/usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/include/g++-v9/type_traits: In substitution of ‘template<bool _Cond, class _Tp> using enable_if_t = typename std::enable_if::type [with bool _Cond = false; _Tp = ozo::ostream&]’:
/home/jonesmz/ozo/include/ozo/core/concept.h:56:7:   required by substitution of ‘template<bool Condition, class Type> using Require = std::enable_if_t<Condition, Type> [with bool Condition = (((bool)ozo::Integral<ozo::detail::typed_buffer<int> >) && (sizeof (ozo::detail::typed_buffer<int>) == 1)); Type = ozo::ostream&]’
/home/jonesmz/ozo/include/ozo/io/ostream.h:36:54:   required by substitution of ‘template<class T> ozo::Require<(Integral<T> && (sizeof (T) == 1)), ozo::ostream&> ozo::ostream::write(T) [with T = ozo::detail::typed_buffer<int>]’
/home/jonesmz/ozo/include/ozo/io/ostream.h:51:25:   required from ‘ozo::Require<(Integral<T> && (sizeof (T) != 1)), ozo::ostream&> ozo::ostream::write(T) [with T = int; ozo::Require<(Integral<T> && (sizeof (T) != 1)), ozo::ostream&> = ozo::ostream&]’
/home/jonesmz/ozo/include/ozo/io/ostream.h:81:45:   required from ‘ozo::ostream& ozo::write(ozo::ostream&, Ts&& ...) [with Ts = {const int&}]’
/home/jonesmz/ozo/include/ozo/io/send.h:56:21:   required from ‘static ozo::ostream& ozo::send_impl<In, <template-parameter-1-2> >::apply(ozo::ostream&, const OidMap&, const In&) [with OidMap = ozo::oid_map_t<>; In = int; <template-parameter-1-2> = void]’
/home/jonesmz/ozo/include/ozo/io/send.h:94:69:   [ skipping 14 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/include/g++-v9/bits/shared_ptr_base.h:1344:71:   required from ‘std::__shared_ptr<_Tp, _Lp>::__shared_ptr(std::_Sp_alloc_shared_tag<_Tp>, _Args&& ...) [with _Alloc = std::allocator<char>; _Args = {const char*, const boost::hana::tuple<bool, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, const ozo::oid_map_t<>&, const std::allocator<char>&}; _Tp = ozo::binary_query::impl_type<const char*, boost::hana::tuple<bool, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, ozo::oid_map_t<>, std::allocator<char> >; __gnu_cxx::_Lock_policy _Lp = __gnu_cxx::_S_atomic]’
/usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/include/g++-v9/bits/shared_ptr.h:359:59:   required from ‘std::shared_ptr<_Tp>::shared_ptr(std::_Sp_alloc_shared_tag<_Tp>, _Args&& ...) [with _Alloc = std::allocator<char>; _Args = {const char*, const boost::hana::tuple<bool, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, const ozo::oid_map_t<>&, const std::allocator<char>&}; _Tp = ozo::binary_query::impl_type<const char*, boost::hana::tuple<bool, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, ozo::oid_map_t<>, std::allocator<char> >]’
/usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/include/g++-v9/bits/shared_ptr.h:701:14:   required from ‘std::shared_ptr<_Tp> std::allocate_shared(const _Alloc&, _Args&& ...) [with _Tp = ozo::binary_query::impl_type<const char*, boost::hana::tuple<bool, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, ozo::oid_map_t<>, std::allocator<char> >; _Alloc = std::allocator<char>; _Args = {const char*, const boost::hana::tuple<bool, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, const ozo::oid_map_t<>&, const std::allocator<char>&}]’
/home/jonesmz/ozo/include/ozo/io/binary_query.h:50:76:   required from ‘ozo::binary_query::binary_query(Text, const Params&, const OidMap&, const Allocator&) [with Text = const char*; Params = boost::hana::tuple<bool, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >; OidMap = ozo::oid_map_t<>; Allocator = std::allocator<char>]’
/home/jonesmz/ozo/tests/binary_query.cpp:17:17:   required from ‘auto {anonymous}::make_binary_query(Text&&, const Params&) [with Text = const char (&)[1]; Params = boost::hana::tuple<bool, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]’
/home/jonesmz/ozo/tests/binary_query.cpp:28:93:   required from here
/usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/include/g++-v9/type_traits:2384:11: error: no type named ‘type’ in ‘struct std::enable_if<false, ozo::ostream&>’
 2384 |     using enable_if_t = typename enable_if<_Cond, _Tp>::type;
      |           ^~~~~~~~~~~
In file included from /home/jonesmz/ozo/include/ozo/io/send.h:6,
                 from /home/jonesmz/ozo/include/ozo/ext/std/nullopt_t.h:5,
                 from /home/jonesmz/ozo/include/ozo/ext/std.h:12,
                 from /home/jonesmz/ozo/include/ozo/io/binary_query.h:3,
                 from /home/jonesmz/ozo/tests/binary_query.cpp:1:
/home/jonesmz/ozo/include/ozo/io/ostream.h: In instantiation of ‘ozo::Require<(Integral<T> && (sizeof (T) != 1)), ozo::ostream&> ozo::ostream::write(T) [with T = int; ozo::Require<(Integral<T> && (sizeof (T) != 1)), ozo::ostream&> = ozo::ostream&]’:
/home/jonesmz/ozo/include/ozo/io/ostream.h:81:45:   required from ‘ozo::ostream& ozo::write(ozo::ostream&, Ts&& ...) [with Ts = {const int&}]’
/home/jonesmz/ozo/include/ozo/io/send.h:56:21:   required from ‘static ozo::ostream& ozo::send_impl<In, <template-parameter-1-2> >::apply(ozo::ostream&, const OidMap&, const In&) [with OidMap = ozo::oid_map_t<>; In = int; <template-parameter-1-2> = void]’
/home/jonesmz/ozo/include/ozo/io/send.h:94:69:   required from ‘ozo::ostream& ozo::send(ozo::ostream&, const OidMap&, const In&) [with OidMap = ozo::oid_map_t<>; In = int]’
/home/jonesmz/ozo/include/ozo/io/binary_query.h:162:60:   required from ‘ozo::binary_query::impl_type<Text, Params, OidMap, Allocator>::impl_type(Text, const Params&, const OidMap&, const Allocator&) [with Text = const char*; Params = boost::hana::tuple<bool, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >; OidMap = ozo::oid_map_t<>; Allocator = std::allocator<char>]::<lambda(auto:20&)> [with auto:20 = const int]’
/usr/include/boost/hana/for_each.hpp:46:45:   required from ‘constexpr void boost::hana::detail::on_each<F>::operator()(Xs&& ...) const [with Xs = {const bool&, const int&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; F = ozo::binary_query::impl_type<Text, Params, OidMap, Allocator>::impl_type(Text, const Params&, const OidMap&, const Allocator&) [with Text = const char*; Params = boost::hana::tuple<bool, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >; OidMap = ozo::oid_map_t<>; Allocator = std::allocator<char>]::<lambda(auto:20&)>*]’
/usr/include/boost/hana/basic_tuple.hpp:115:39:   [ skipping 11 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/include/g++-v9/bits/shared_ptr_base.h:1344:71:   required from ‘std::__shared_ptr<_Tp, _Lp>::__shared_ptr(std::_Sp_alloc_shared_tag<_Tp>, _Args&& ...) [with _Alloc = std::allocator<char>; _Args = {const char*, const boost::hana::tuple<bool, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, const ozo::oid_map_t<>&, const std::allocator<char>&}; _Tp = ozo::binary_query::impl_type<const char*, boost::hana::tuple<bool, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, ozo::oid_map_t<>, std::allocator<char> >; __gnu_cxx::_Lock_policy _Lp = __gnu_cxx::_S_atomic]’
/usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/include/g++-v9/bits/shared_ptr.h:359:59:   required from ‘std::shared_ptr<_Tp>::shared_ptr(std::_Sp_alloc_shared_tag<_Tp>, _Args&& ...) [with _Alloc = std::allocator<char>; _Args = {const char*, const boost::hana::tuple<bool, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, const ozo::oid_map_t<>&, const std::allocator<char>&}; _Tp = ozo::binary_query::impl_type<const char*, boost::hana::tuple<bool, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, ozo::oid_map_t<>, std::allocator<char> >]’
/usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/include/g++-v9/bits/shared_ptr.h:701:14:   required from ‘std::shared_ptr<_Tp> std::allocate_shared(const _Alloc&, _Args&& ...) [with _Tp = ozo::binary_query::impl_type<const char*, boost::hana::tuple<bool, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, ozo::oid_map_t<>, std::allocator<char> >; _Alloc = std::allocator<char>; _Args = {const char*, const boost::hana::tuple<bool, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, const ozo::oid_map_t<>&, const std::allocator<char>&}]’
/home/jonesmz/ozo/include/ozo/io/binary_query.h:50:76:   required from ‘ozo::binary_query::binary_query(Text, const Params&, const OidMap&, const Allocator&) [with Text = const char*; Params = boost::hana::tuple<bool, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >; OidMap = ozo::oid_map_t<>; Allocator = std::allocator<char>]’
/home/jonesmz/ozo/tests/binary_query.cpp:17:17:   required from ‘auto {anonymous}::make_binary_query(Text&&, const Params&) [with Text = const char (&)[1]; Params = boost::hana::tuple<bool, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >]’
/home/jonesmz/ozo/tests/binary_query.cpp:28:93:   required from here
/home/jonesmz/ozo/include/ozo/io/ostream.h:41:43: note: candidate: ‘template<class T> ozo::Require<RawDataReadable<T>, ozo::ostream&> ozo::ostream::write(const T&)’
   41 |     Require<RawDataReadable<T>, ostream&> write(const T& in) {
      |                                           ^~~~~
/home/jonesmz/ozo/include/ozo/io/ostream.h:41:43: note:   template argument deduction/substitution failed:
/home/jonesmz/ozo/include/ozo/io/ostream.h:48:54: note: candidate: ‘template<class T> ozo::Require<(Integral<T> && (sizeof (T) != 1)), ozo::ostream&> ozo::ostream::write(T)’
   48 |     Require<Integral<T> && sizeof(T) != 1, ostream&> write(T in) {
      |                                                      ^~~~~
/home/jonesmz/ozo/include/ozo/io/ostream.h:48:54: note:   template argument deduction/substitution failed:
/home/jonesmz/ozo/include/ozo/io/ostream.h:55:41: note: candidate: ‘template<class T> ozo::Require<FloatingPoint<T>, ozo::ostream&> ozo::ostream::write(T)’
   55 |     Require<FloatingPoint<T>, ostream&> write(T in) {
      |                                         ^~~~~
/home/jonesmz/ozo/include/ozo/io/ostream.h:55:41: note:   template argument deduction/substitution failed:
/home/jonesmz/ozo/include/ozo/io/ostream.h:59:14: note: candidate: ‘ozo::ostream& ozo::ostream::write(bool)’
   59 |     ostream& write(bool in) {
      |              ^~~~~
/home/jonesmz/ozo/include/ozo/io/ostream.h:59:25: note:   no known conversion for argument 1 from ‘ozo::detail::typed_buffer<int>’ to ‘bool’
   59 |     ostream& write(bool in) {
      |                    ~~~~~^~
/home/jonesmz/ozo/include/ozo/io/ostream.h:65:40: note: candidate: ‘template<class T> ozo::Require<HanaSequence<T>, ozo::ostream&> ozo::ostream::write(const T&)’
   65 |     Require<HanaSequence<T>, ostream&> write(const T& in) {
      |                                        ^~~~~
/home/jonesmz/ozo/include/ozo/io/ostream.h:65:40: note:   template argument deduction/substitution failed:
/home/jonesmz/ozo/include/ozo/io/ostream.h:71:38: note: candidate: ‘template<class T> ozo::Require<HanaStruct<T>, ozo::ostream&> ozo::ostream::write(const T&)’
   71 |     Require<HanaStruct<T>, ostream&> write(const T& in) {
      |                                      ^~~~~
/home/jonesmz/ozo/include/ozo/io/ostream.h:71:38: note:   template argument deduction/substitution failed:
/home/jonesmz/ozo/include/ozo/io/ostream.h: In instantiation of ‘ozo::Require<(Integral<T> && (sizeof (T) != 1)), ozo::ostream&> ozo::ostream::write(T) [with T = short int; ozo::Require<(Integral<T> && (sizeof (T) != 1)), ozo::ostream&> = ozo::ostream&]’:
/home/jonesmz/ozo/include/ozo/io/ostream.h:81:45:   required from ‘ozo::ostream& ozo::write(ozo::ostream&, Ts&& ...) [with Ts = {const short int&}]’
/home/jonesmz/ozo/include/ozo/io/send.h:56:21:   required from ‘static ozo::ostream& ozo::send_impl<In, <template-parameter-1-2> >::apply(ozo::ostream&, const OidMap&, const In&) [with OidMap = ozo::oid_map_t<>; In = short int; <template-parameter-1-2> = void]’
/home/jonesmz/ozo/include/ozo/io/send.h:94:69:   required from ‘ozo::ostream& ozo::send(ozo::ostream&, const OidMap&, const In&) [with OidMap = ozo::oid_map_t<>; In = short int]’
/home/jonesmz/ozo/include/ozo/io/binary_query.h:162:60:   required from ‘ozo::binary_query::impl_type<Text, Params, OidMap, Allocator>::impl_type(Text, const Params&, const OidMap&, const Allocator&) [with Text = const char*; Params = boost::hana::tuple<short int>; OidMap = ozo::oid_map_t<>; Allocator = std::allocator<char>]::<lambda(auto:20&)> [with auto:20 = const short int]’
/usr/include/boost/hana/for_each.hpp:46:45:   required from ‘constexpr void boost::hana::detail::on_each<F>::operator()(Xs&& ...) const [with Xs = {const short int&}; F = ozo::binary_query::impl_type<Text, Params, OidMap, Allocator>::impl_type(Text, const Params&, const OidMap&, const Allocator&) [with Text = const char*; Params = boost::hana::tuple<short int>; OidMap = ozo::oid_map_t<>; Allocator = std::allocator<char>]::<lambda(auto:20&)>*]’
/usr/include/boost/hana/basic_tuple.hpp:115:39:   [ skipping 11 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/include/g++-v9/bits/shared_ptr_base.h:1344:71:   required from ‘std::__shared_ptr<_Tp, _Lp>::__shared_ptr(std::_Sp_alloc_shared_tag<_Tp>, _Args&& ...) [with _Alloc = std::allocator<char>; _Args = {const char*, const boost::hana::tuple<short int>&, const ozo::oid_map_t<>&, const std::allocator<char>&}; _Tp = ozo::binary_query::impl_type<const char*, boost::hana::tuple<short int>, ozo::oid_map_t<>, std::allocator<char> >; __gnu_cxx::_Lock_policy _Lp = __gnu_cxx::_S_atomic]’
/usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/include/g++-v9/bits/shared_ptr.h:359:59:   required from ‘std::shared_ptr<_Tp>::shared_ptr(std::_Sp_alloc_shared_tag<_Tp>, _Args&& ...) [with _Alloc = std::allocator<char>; _Args = {const char*, const boost::hana::tuple<short int>&, const ozo::oid_map_t<>&, const std::allocator<char>&}; _Tp = ozo::binary_query::impl_type<const char*, boost::hana::tuple<short int>, ozo::oid_map_t<>, std::allocator<char> >]’
/usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/include/g++-v9/bits/shared_ptr.h:701:14:   required from ‘std::shared_ptr<_Tp> std::allocate_shared(const _Alloc&, _Args&& ...) [with _Tp = ozo::binary_query::impl_type<const char*, boost::hana::tuple<short int>, ozo::oid_map_t<>, std::allocator<char> >; _Alloc = std::allocator<char>; _Args = {const char*, const boost::hana::tuple<short int>&, const ozo::oid_map_t<>&, const std::allocator<char>&}]’
/home/jonesmz/ozo/include/ozo/io/binary_query.h:50:76:   required from ‘ozo::binary_query::binary_query(Text, const Params&, const OidMap&, const Allocator&) [with Text = const char*; Params = boost::hana::tuple<short int>; OidMap = ozo::oid_map_t<>; Allocator = std::allocator<char>]’
/home/jonesmz/ozo/tests/binary_query.cpp:17:17:   required from ‘auto {anonymous}::make_binary_query(Text&&, const Params&) [with Text = const char (&)[1]; Params = boost::hana::tuple<short int>]’
/home/jonesmz/ozo/tests/binary_query.cpp:47:78:   required from here
/home/jonesmz/ozo/include/ozo/io/ostream.h:51:25: error: no matching function for call to ‘ozo::ostream::write(ozo::detail::typed_buffer<short int>&)’
   51 |         return write(buf);
      |                         ^
/home/jonesmz/ozo/include/ozo/io/ostream.h:25:14: note: candidate: ‘ozo::ostream& ozo::ostream::write(const char_type*, std::streamsize)’
   25 |     ostream& write(const char_type* s, std::streamsize n) {
      |              ^~~~~
/home/jonesmz/ozo/include/ozo/io/ostream.h:25:14: note:   candidate expects 2 arguments, 1 provided
/home/jonesmz/ozo/include/ozo/io/ostream.h:36:54: note: candidate: ‘template<class T> ozo::Require<(Integral<T> && (sizeof (T) == 1)), ozo::ostream&> ozo::ostream::write(T)’
   36 |     Require<Integral<T> && sizeof(T) == 1, ostream&> write(T in) {
      |                                                      ^~~~~
/home/jonesmz/ozo/include/ozo/io/ostream.h:36:54: note:   template argument deduction/substitution failed:
/home/jonesmz/ozo/include/ozo/io/ostream.h:41:43: note: candidate: ‘template<class T> ozo::Require<RawDataReadable<T>, ozo::ostream&> ozo::ostream::write(const T&)’
   41 |     Require<RawDataReadable<T>, ostream&> write(const T& in) {
      |                                           ^~~~~
/home/jonesmz/ozo/include/ozo/io/ostream.h:41:43: note:   template argument deduction/substitution failed:
/home/jonesmz/ozo/include/ozo/io/ostream.h:48:54: note: candidate: ‘template<class T> ozo::Require<(Integral<T> && (sizeof (T) != 1)), ozo::ostream&> ozo::ostream::write(T)’
   48 |     Require<Integral<T> && sizeof(T) != 1, ostream&> write(T in) {
      |                                                      ^~~~~
/home/jonesmz/ozo/include/ozo/io/ostream.h:48:54: note:   template argument deduction/substitution failed:
/home/jonesmz/ozo/include/ozo/io/ostream.h:55:41: note: candidate: ‘template<class T> ozo::Require<FloatingPoint<T>, ozo::ostream&> ozo::ostream::write(T)’
   55 |     Require<FloatingPoint<T>, ostream&> write(T in) {
      |                                         ^~~~~
/home/jonesmz/ozo/include/ozo/io/ostream.h:55:41: note:   template argument deduction/substitution failed:
/home/jonesmz/ozo/include/ozo/io/ostream.h:59:14: note: candidate: ‘ozo::ostream& ozo::ostream::write(bool)’
   59 |     ostream& write(bool in) {
      |              ^~~~~
/home/jonesmz/ozo/include/ozo/io/ostream.h:59:25: note:   no known conversion for argument 1 from ‘ozo::detail::typed_buffer<short int>’ to ‘bool’
   59 |     ostream& write(bool in) {
      |                    ~~~~~^~
/home/jonesmz/ozo/include/ozo/io/ostream.h:65:40: note: candidate: ‘template<class T> ozo::Require<HanaSequence<T>, ozo::ostream&> ozo::ostream::write(const T&)’
   65 |     Require<HanaSequence<T>, ostream&> write(const T& in) {
      |                                        ^~~~~
/home/jonesmz/ozo/include/ozo/io/ostream.h:65:40: note:   template argument deduction/substitution failed:
/home/jonesmz/ozo/include/ozo/io/ostream.h:71:38: note: candidate: ‘template<class T> ozo::Require<HanaStruct<T>, ozo::ostream&> ozo::ostream::write(const T&)’
   71 |     Require<HanaStruct<T>, ostream&> write(const T& in) {
      |                                      ^~~~~
/home/jonesmz/ozo/include/ozo/io/ostream.h:71:38: note:   template argument deduction/substitution failed:
/home/jonesmz/ozo/include/ozo/io/ostream.h: In instantiation of ‘ozo::Require<(Integral<T> && (sizeof (T) != 1)), ozo::ostream&> ozo::ostream::write(T) [with T = unsigned int; ozo::Require<(Integral<T> && (sizeof (T) != 1)), ozo::ostream&> = ozo::ostream&]’:
/home/jonesmz/ozo/include/ozo/io/ostream.h:66:46:   required from ‘ozo::ostream::write(const T&) [with T = boost::hana::tuple<int, int, unsigned int>; ozo::Require<HanaSequence<T>, ozo::ostream&> = ozo::ostream&]::<lambda(auto:2&)> [with auto:2 = const unsigned int]’
/usr/include/boost/hana/for_each.hpp:46:45:   required from ‘constexpr void boost::hana::detail::on_each<F>::operator()(Xs&& ...) const [with Xs = {const int&, const int&, const unsigned int&}; F = ozo::ostream::write(const T&) [with T = boost::hana::tuple<int, int, unsigned int>; ozo::Require<HanaSequence<T>, ozo::ostream&> = ozo::ostream&]::<lambda(auto:2&)>*]’
/usr/include/boost/hana/basic_tuple.hpp:115:39:   required from ‘static constexpr decltype(auto) boost::hana::unpack_impl<boost::hana::basic_tuple_tag>::apply(const boost::hana::detail::basic_tuple_impl<std::integer_sequence<long unsigned int, _Idx ...>, Xn ...>&, F&&) [with long unsigned int ...i = {0, 1, 2}; Xn = {int, int, unsigned int}; F = boost::hana::detail::on_each<ozo::ostream::write(const T&) [with T = boost::hana::tuple<int, int, unsigned int>; ozo::Require<HanaSequence<T>, ozo::ostream&> = ozo::ostream&]::<lambda(auto:2&)>*>]’
/usr/include/boost/hana/unpack.hpp:47:29:   required from ‘constexpr decltype(auto) boost::hana::unpack_t::operator()(Xs&&, F&&) const [with Xs = const boost::hana::basic_tuple<int, int, unsigned int>&; F = boost::hana::detail::on_each<ozo::ostream::write(const T&) [with T = boost::hana::tuple<int, int, unsigned int>; ozo::Require<HanaSequence<T>, ozo::ostream&> = ozo::ostream&]::<lambda(auto:2&)>*>]’
/usr/include/boost/hana/tuple.hpp:233:32:   required from ‘static constexpr decltype(auto) boost::hana::unpack_impl<boost::hana::tuple_tag>::apply(Xs&&, F&&) [with Xs = const boost::hana::tuple<int, int, unsigned int>&; F = boost::hana::detail::on_each<ozo::ostream::write(const T&) [with T = boost::hana::tuple<int, int, unsigned int>; ozo::Require<HanaSequence<T>, ozo::ostream&> = ozo::ostream&]::<lambda(auto:2&)>*>]’
/usr/include/boost/hana/unpack.hpp:47:29:   [ skipping 21 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/include/g++-v9/bits/shared_ptr_base.h:1344:71:   required from ‘std::__shared_ptr<_Tp, _Lp>::__shared_ptr(std::_Sp_alloc_shared_tag<_Tp>, _Args&& ...) [with _Alloc = std::allocator<char>; _Args = {const char*, const boost::hana::tuple<std::vector<int, std::allocator<int> > >&, const ozo::oid_map_t<>&, const std::allocator<char>&}; _Tp = ozo::binary_query::impl_type<const char*, boost::hana::tuple<std::vector<int, std::allocator<int> > >, ozo::oid_map_t<>, std::allocator<char> >; __gnu_cxx::_Lock_policy _Lp = __gnu_cxx::_S_atomic]’
/usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/include/g++-v9/bits/shared_ptr.h:359:59:   required from ‘std::shared_ptr<_Tp>::shared_ptr(std::_Sp_alloc_shared_tag<_Tp>, _Args&& ...) [with _Alloc = std::allocator<char>; _Args = {const char*, const boost::hana::tuple<std::vector<int, std::allocator<int> > >&, const ozo::oid_map_t<>&, const std::allocator<char>&}; _Tp = ozo::binary_query::impl_type<const char*, boost::hana::tuple<std::vector<int, std::allocator<int> > >, ozo::oid_map_t<>, std::allocator<char> >]’
/usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/include/g++-v9/bits/shared_ptr.h:701:14:   required from ‘std::shared_ptr<_Tp> std::allocate_shared(const _Alloc&, _Args&& ...) [with _Tp = ozo::binary_query::impl_type<const char*, boost::hana::tuple<std::vector<int, std::allocator<int> > >, ozo::oid_map_t<>, std::allocator<char> >; _Alloc = std::allocator<char>; _Args = {const char*, const boost::hana::tuple<std::vector<int, std::allocator<int> > >&, const ozo::oid_map_t<>&, const std::allocator<char>&}]’
/home/jonesmz/ozo/include/ozo/io/binary_query.h:50:76:   required from ‘ozo::binary_query::binary_query(Text, const Params&, const OidMap&, const Allocator&) [with Text = const char*; Params = boost::hana::tuple<std::vector<int, std::allocator<int> > >; OidMap = ozo::oid_map_t<>; Allocator = std::allocator<char>]’
/home/jonesmz/ozo/tests/binary_query.cpp:17:17:   required from ‘auto {anonymous}::make_binary_query(Text&&, const Params&) [with Text = const char (&)[1]; Params = boost::hana::tuple<std::vector<int, std::allocator<int> > >]’
/home/jonesmz/ozo/tests/binary_query.cpp:67:91:   required from here
/home/jonesmz/ozo/include/ozo/io/ostream.h:51:25: error: no matching function for call to ‘ozo::ostream::write(ozo::detail::typed_buffer<unsigned int>&)’
   51 |         return write(buf);
      |                         ^
/home/jonesmz/ozo/include/ozo/io/ostream.h:25:14: note: candidate: ‘ozo::ostream& ozo::ostream::write(const char_type*, std::streamsize)’
   25 |     ostream& write(const char_type* s, std::streamsize n) {
      |              ^~~~~
/home/jonesmz/ozo/include/ozo/io/ostream.h:25:14: note:   candidate expects 2 arguments, 1 provided
/home/jonesmz/ozo/include/ozo/io/ostream.h:36:54: note: candidate: ‘template<class T> ozo::Require<(Integral<T> && (sizeof (T) == 1)), ozo::ostream&> ozo::ostream::write(T)’
   36 |     Require<Integral<T> && sizeof(T) == 1, ostream&> write(T in) {
      |                                                      ^~~~~
/home/jonesmz/ozo/include/ozo/io/ostream.h:36:54: note:   template argument deduction/substitution failed:
/home/jonesmz/ozo/include/ozo/io/ostream.h:41:43: note: candidate: ‘template<class T> ozo::Require<RawDataReadable<T>, ozo::ostream&> ozo::ostream::write(const T&)’
   41 |     Require<RawDataReadable<T>, ostream&> write(const T& in) {
      |                                           ^~~~~
/home/jonesmz/ozo/include/ozo/io/ostream.h:41:43: note:   template argument deduction/substitution failed:
/home/jonesmz/ozo/include/ozo/io/ostream.h:48:54: note: candidate: ‘template<class T> ozo::Require<(Integral<T> && (sizeof (T) != 1)), ozo::ostream&> ozo::ostream::write(T)’
   48 |     Require<Integral<T> && sizeof(T) != 1, ostream&> write(T in) {
      |                                                      ^~~~~
/home/jonesmz/ozo/include/ozo/io/ostream.h:48:54: note:   template argument deduction/substitution failed:
/home/jonesmz/ozo/include/ozo/io/ostream.h:55:41: note: candidate: ‘template<class T> ozo::Require<FloatingPoint<T>, ozo::ostream&> ozo::ostream::write(T)’
   55 |     Require<FloatingPoint<T>, ostream&> write(T in) {
      |                                         ^~~~~
/home/jonesmz/ozo/include/ozo/io/ostream.h:55:41: note:   template argument deduction/substitution failed:
/home/jonesmz/ozo/include/ozo/io/ostream.h:59:14: note: candidate: ‘ozo::ostream& ozo::ostream::write(bool)’
   59 |     ostream& write(bool in) {
      |              ^~~~~
/home/jonesmz/ozo/include/ozo/io/ostream.h:59:25: note:   no known conversion for argument 1 from ‘ozo::detail::typed_buffer<unsigned int>’ to ‘bool’
   59 |     ostream& write(bool in) {
      |                    ~~~~~^~
/home/jonesmz/ozo/include/ozo/io/ostream.h:65:40: note: candidate: ‘template<class T> ozo::Require<HanaSequence<T>, ozo::ostream&> ozo::ostream::write(const T&)’
   65 |     Require<HanaSequence<T>, ostream&> write(const T& in) {
      |                                        ^~~~~
/home/jonesmz/ozo/include/ozo/io/ostream.h:65:40: note:   template argument deduction/substitution failed:
/home/jonesmz/ozo/include/ozo/io/ostream.h:71:38: note: candidate: ‘template<class T> ozo::Require<HanaStruct<T>, ozo::ostream&> ozo::ostream::write(const T&)’
   71 |     Require<HanaStruct<T>, ostream&> write(const T& in) {
      |                                      ^~~~~
/home/jonesmz/ozo/include/ozo/io/ostream.h:71:38: note:   template argument deduction/substitution failed:
cc1plus: all warnings being treated as errors
make[2]: *** [tests/CMakeFiles/ozo_tests.dir/build.make:180: tests/CMakeFiles/ozo_tests.dir/query_builder.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
In file included from /home/jonesmz/ozo/include/ozo/io/send.h:6,
                 from /home/jonesmz/ozo/include/ozo/io/composite.h:4,
                 from /home/jonesmz/ozo/tests/composite.cpp:5:
/home/jonesmz/ozo/include/ozo/io/ostream.h: In instantiation of ‘ozo::Require<(Integral<T> && (sizeof (T) != 1)), ozo::ostream&> ozo::ostream::write(T) [with T = int; ozo::Require<(Integral<T> && (sizeof (T) != 1)), ozo::ostream&> = ozo::ostream&]’:
/home/jonesmz/ozo/include/ozo/io/ostream.h:66:46:   required from ‘ozo::ostream::write(const T&) [with T = boost::hana::tuple<int>; ozo::Require<HanaSequence<T>, ozo::ostream&> = ozo::ostream&]::<lambda(auto:2&)> [with auto:2 = const int]’
/usr/include/boost/hana/for_each.hpp:46:45:   required from ‘constexpr void boost::hana::detail::on_each<F>::operator()(Xs&& ...) const [with Xs = {const int&}; F = ozo::ostream::write(const T&) [with T = boost::hana::tuple<int>; ozo::Require<HanaSequence<T>, ozo::ostream&> = ozo::ostream&]::<lambda(auto:2&)>*]’
/usr/include/boost/hana/basic_tuple.hpp:115:39:   required from ‘static constexpr decltype(auto) boost::hana::unpack_impl<boost::hana::basic_tuple_tag>::apply(const boost::hana::detail::basic_tuple_impl<std::integer_sequence<long unsigned int, _Idx ...>, Xn ...>&, F&&) [with long unsigned int ...i = {0}; Xn = {int}; F = boost::hana::detail::on_each<ozo::ostream::write(const T&) [with T = boost::hana::tuple<int>; ozo::Require<HanaSequence<T>, ozo::ostream&> = ozo::ostream&]::<lambda(auto:2&)>*>]’
/usr/include/boost/hana/unpack.hpp:47:29:   required from ‘constexpr decltype(auto) boost::hana::unpack_t::operator()(Xs&&, F&&) const [with Xs = const boost::hana::basic_tuple<int>&; F = boost::hana::detail::on_each<ozo::ostream::write(const T&) [with T = boost::hana::tuple<int>; ozo::Require<HanaSequence<T>, ozo::ostream&> = ozo::ostream&]::<lambda(auto:2&)>*>]’
/usr/include/boost/hana/tuple.hpp:233:32:   required from ‘static constexpr decltype(auto) boost::hana::unpack_impl<boost::hana::tuple_tag>::apply(Xs&&, F&&) [with Xs = const boost::hana::tuple<int>&; F = boost::hana::detail::on_each<ozo::ostream::write(const T&) [with T = boost::hana::tuple<int>; ozo::Require<HanaSequence<T>, ozo::ostream&> = ozo::ostream&]::<lambda(auto:2&)>*>]’
/usr/include/boost/hana/unpack.hpp:47:29:   [ skipping 3 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/home/jonesmz/ozo/include/ozo/io/ostream.h:66:23:   required from ‘ozo::Require<HanaSequence<T>, ozo::ostream&> ozo::ostream::write(const T&) [with T = boost::hana::tuple<int>; ozo::Require<HanaSequence<T>, ozo::ostream&> = ozo::ostream&]’
/home/jonesmz/ozo/include/ozo/io/ostream.h:72:39:   required from ‘ozo::Require<HanaStruct<T>, ozo::ostream&> ozo::ostream::write(const T&) [with T = ozo::detail::pg_composite; ozo::Require<HanaStruct<T>, ozo::ostream&> = ozo::ostream&]’
/home/jonesmz/ozo/include/ozo/io/ostream.h:81:45:   required from ‘ozo::ostream& ozo::write(ozo::ostream&, Ts&& ...) [with Ts = {ozo::detail::pg_composite}]’
/home/jonesmz/ozo/include/ozo/io/composite.h:80:51:   required from ‘static ozo::ostream& ozo::detail::send_composite_impl<T>::apply(ozo::ostream&, const OidMap&, const T&) [with OidMap = ozo::oid_map_t<fusion_test_struct, hana_test_struct>; T = fusion_test_struct]’
/home/jonesmz/ozo/include/ozo/io/send.h:94:69:   required from ‘ozo::ostream& ozo::send(ozo::ostream&, const OidMap&, const In&) [with OidMap = ozo::oid_map_t<fusion_test_struct, hana_test_struct>; In = fusion_test_struct]’
/home/jonesmz/ozo/tests/composite.cpp:82:29:   required from here
/home/jonesmz/ozo/include/ozo/io/ostream.h:51:25: error: no matching function for call to ‘ozo::ostream::write(ozo::detail::typed_buffer<int>&)’
   51 |         return write(buf);
      |                         ^
/home/jonesmz/ozo/include/ozo/io/ostream.h:25:14: note: candidate: ‘ozo::ostream& ozo::ostream::write(const char_type*, std::streamsize)’
   25 |     ostream& write(const char_type* s, std::streamsize n) {
      |              ^~~~~
/home/jonesmz/ozo/include/ozo/io/ostream.h:25:14: note:   candidate expects 2 arguments, 1 provided
/home/jonesmz/ozo/include/ozo/io/ostream.h:36:54: note: candidate: ‘template<class T> ozo::Require<(Integral<T> && (sizeof (T) == 1)), ozo::ostream&> ozo::ostream::write(T)’
   36 |     Require<Integral<T> && sizeof(T) == 1, ostream&> write(T in) {
      |                                                      ^~~~~
/home/jonesmz/ozo/include/ozo/io/ostream.h:36:54: note:   template argument deduction/substitution failed:
In file included from /usr/include/boost/hana/core/default.hpp:17,
                 from /usr/include/boost/hana/concept/constant.hpp:16,
                 from /usr/include/boost/hana/core/to.hpp:15,
                 from /home/jonesmz/ozo/include/ozo/pg/handle.h:4,
                 from /home/jonesmz/ozo/include/ozo/impl/result.h:3,
                 from /home/jonesmz/ozo/include/ozo/result.h:3,
                 from /home/jonesmz/ozo/tests/result_mock.h:3,
                 from /home/jonesmz/ozo/tests/composite.cpp:1:
/usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/include/g++-v9/type_traits: In substitution of ‘template<bool _Cond, class _Tp> using enable_if_t = typename std::enable_if::type [with bool _Cond = false; _Tp = ozo::ostream&]’:
/home/jonesmz/ozo/include/ozo/core/concept.h:56:7:   required by substitution of ‘template<bool Condition, class Type> using Require = std::enable_if_t<Condition, Type> [with bool Condition = (((bool)ozo::Integral<ozo::detail::typed_buffer<int> >) && (sizeof (ozo::detail::typed_buffer<int>) == 1)); Type = ozo::ostream&]’
/home/jonesmz/ozo/include/ozo/io/ostream.h:36:54:   required by substitution of ‘template<class T> ozo::Require<(Integral<T> && (sizeof (T) == 1)), ozo::ostream&> ozo::ostream::write(T) [with T = ozo::detail::typed_buffer<int>]’
/home/jonesmz/ozo/include/ozo/io/ostream.h:51:25:   required from ‘ozo::Require<(Integral<T> && (sizeof (T) != 1)), ozo::ostream&> ozo::ostream::write(T) [with T = int; ozo::Require<(Integral<T> && (sizeof (T) != 1)), ozo::ostream&> = ozo::ostream&]’
/home/jonesmz/ozo/include/ozo/io/ostream.h:66:46:   required from ‘ozo::ostream::write(const T&) [with T = boost::hana::tuple<int>; ozo::Require<HanaSequence<T>, ozo::ostream&> = ozo::ostream&]::<lambda(auto:2&)> [with auto:2 = const int]’
/usr/include/boost/hana/for_each.hpp:46:45:   required from ‘constexpr void boost::hana::detail::on_each<F>::operator()(Xs&& ...) const [with Xs = {const int&}; F = ozo::ostream::write(const T&) [with T = boost::hana::tuple<int>; ozo::Require<HanaSequence<T>, ozo::ostream&> = ozo::ostream&]::<lambda(auto:2&)>*]’
/usr/include/boost/hana/basic_tuple.hpp:115:39:   [ skipping 6 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/home/jonesmz/ozo/include/ozo/io/ostream.h:66:23:   required from ‘ozo::Require<HanaSequence<T>, ozo::ostream&> ozo::ostream::write(const T&) [with T = boost::hana::tuple<int>; ozo::Require<HanaSequence<T>, ozo::ostream&> = ozo::ostream&]’
/home/jonesmz/ozo/include/ozo/io/ostream.h:72:39:   required from ‘ozo::Require<HanaStruct<T>, ozo::ostream&> ozo::ostream::write(const T&) [with T = ozo::detail::pg_composite; ozo::Require<HanaStruct<T>, ozo::ostream&> = ozo::ostream&]’
/home/jonesmz/ozo/include/ozo/io/ostream.h:81:45:   required from ‘ozo::ostream& ozo::write(ozo::ostream&, Ts&& ...) [with Ts = {ozo::detail::pg_composite}]’
/home/jonesmz/ozo/include/ozo/io/composite.h:80:51:   required from ‘static ozo::ostream& ozo::detail::send_composite_impl<T>::apply(ozo::ostream&, const OidMap&, const T&) [with OidMap = ozo::oid_map_t<fusion_test_struct, hana_test_struct>; T = fusion_test_struct]’
/home/jonesmz/ozo/include/ozo/io/send.h:94:69:   required from ‘ozo::ostream& ozo::send(ozo::ostream&, const OidMap&, const In&) [with OidMap = ozo::oid_map_t<fusion_test_struct, hana_test_struct>; In = fusion_test_struct]’
/home/jonesmz/ozo/tests/composite.cpp:82:29:   required from here
/usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/include/g++-v9/type_traits:2384:11: error: no type named ‘type’ in ‘struct std::enable_if<false, ozo::ostream&>’
 2384 |     using enable_if_t = typename enable_if<_Cond, _Tp>::type;
      |           ^~~~~~~~~~~
In file included from /home/jonesmz/ozo/include/ozo/io/send.h:6,
                 from /home/jonesmz/ozo/include/ozo/io/composite.h:4,
                 from /home/jonesmz/ozo/tests/composite.cpp:5:
/home/jonesmz/ozo/include/ozo/io/ostream.h: In instantiation of ‘ozo::Require<(Integral<T> && (sizeof (T) != 1)), ozo::ostream&> ozo::ostream::write(T) [with T = int; ozo::Require<(Integral<T> && (sizeof (T) != 1)), ozo::ostream&> = ozo::ostream&]’:
/home/jonesmz/ozo/include/ozo/io/ostream.h:66:46:   required from ‘ozo::ostream::write(const T&) [with T = boost::hana::tuple<int>; ozo::Require<HanaSequence<T>, ozo::ostream&> = ozo::ostream&]::<lambda(auto:2&)> [with auto:2 = const int]’
/usr/include/boost/hana/for_each.hpp:46:45:   required from ‘constexpr void boost::hana::detail::on_each<F>::operator()(Xs&& ...) const [with Xs = {const int&}; F = ozo::ostream::write(const T&) [with T = boost::hana::tuple<int>; ozo::Require<HanaSequence<T>, ozo::ostream&> = ozo::ostream&]::<lambda(auto:2&)>*]’
/usr/include/boost/hana/basic_tuple.hpp:115:39:   required from ‘static constexpr decltype(auto) boost::hana::unpack_impl<boost::hana::basic_tuple_tag>::apply(const boost::hana::detail::basic_tuple_impl<std::integer_sequence<long unsigned int, _Idx ...>, Xn ...>&, F&&) [with long unsigned int ...i = {0}; Xn = {int}; F = boost::hana::detail::on_each<ozo::ostream::write(const T&) [with T = boost::hana::tuple<int>; ozo::Require<HanaSequence<T>, ozo::ostream&> = ozo::ostream&]::<lambda(auto:2&)>*>]’
/usr/include/boost/hana/unpack.hpp:47:29:   required from ‘constexpr decltype(auto) boost::hana::unpack_t::operator()(Xs&&, F&&) const [with Xs = const boost::hana::basic_tuple<int>&; F = boost::hana::detail::on_each<ozo::ostream::write(const T&) [with T = boost::hana::tuple<int>; ozo::Require<HanaSequence<T>, ozo::ostream&> = ozo::ostream&]::<lambda(auto:2&)>*>]’
/usr/include/boost/hana/tuple.hpp:233:32:   required from ‘static constexpr decltype(auto) boost::hana::unpack_impl<boost::hana::tuple_tag>::apply(Xs&&, F&&) [with Xs = const boost::hana::tuple<int>&; F = boost::hana::detail::on_each<ozo::ostream::write(const T&) [with T = boost::hana::tuple<int>; ozo::Require<HanaSequence<T>, ozo::ostream&> = ozo::ostream&]::<lambda(auto:2&)>*>]’
/usr/include/boost/hana/unpack.hpp:47:29:   [ skipping 3 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/home/jonesmz/ozo/include/ozo/io/ostream.h:66:23:   required from ‘ozo::Require<HanaSequence<T>, ozo::ostream&> ozo::ostream::write(const T&) [with T = boost::hana::tuple<int>; ozo::Require<HanaSequence<T>, ozo::ostream&> = ozo::ostream&]’
/home/jonesmz/ozo/include/ozo/io/ostream.h:72:39:   required from ‘ozo::Require<HanaStruct<T>, ozo::ostream&> ozo::ostream::write(const T&) [with T = ozo::detail::pg_composite; ozo::Require<HanaStruct<T>, ozo::ostream&> = ozo::ostream&]’
/home/jonesmz/ozo/include/ozo/io/ostream.h:81:45:   required from ‘ozo::ostream& ozo::write(ozo::ostream&, Ts&& ...) [with Ts = {ozo::detail::pg_composite}]’
/home/jonesmz/ozo/include/ozo/io/composite.h:80:51:   required from ‘static ozo::ostream& ozo::detail::send_composite_impl<T>::apply(ozo::ostream&, const OidMap&, const T&) [with OidMap = ozo::oid_map_t<fusion_test_struct, hana_test_struct>; T = fusion_test_struct]’
/home/jonesmz/ozo/include/ozo/io/send.h:94:69:   required from ‘ozo::ostream& ozo::send(ozo::ostream&, const OidMap&, const In&) [with OidMap = ozo::oid_map_t<fusion_test_struct, hana_test_struct>; In = fusion_test_struct]’
/home/jonesmz/ozo/tests/composite.cpp:82:29:   required from here
/home/jonesmz/ozo/include/ozo/io/ostream.h:41:43: note: candidate: ‘template<class T> ozo::Require<RawDataReadable<T>, ozo::ostream&> ozo::ostream::write(const T&)’
   41 |     Require<RawDataReadable<T>, ostream&> write(const T& in) {
      |                                           ^~~~~
/home/jonesmz/ozo/include/ozo/io/ostream.h:41:43: note:   template argument deduction/substitution failed:
/home/jonesmz/ozo/include/ozo/io/ostream.h:48:54: note: candidate: ‘template<class T> ozo::Require<(Integral<T> && (sizeof (T) != 1)), ozo::ostream&> ozo::ostream::write(T)’
   48 |     Require<Integral<T> && sizeof(T) != 1, ostream&> write(T in) {
      |                                                      ^~~~~
/home/jonesmz/ozo/include/ozo/io/ostream.h:48:54: note:   template argument deduction/substitution failed:
/home/jonesmz/ozo/include/ozo/io/ostream.h:55:41: note: candidate: ‘template<class T> ozo::Require<FloatingPoint<T>, ozo::ostream&> ozo::ostream::write(T)’
   55 |     Require<FloatingPoint<T>, ostream&> write(T in) {
      |                                         ^~~~~
/home/jonesmz/ozo/include/ozo/io/ostream.h:55:41: note:   template argument deduction/substitution failed:
/home/jonesmz/ozo/include/ozo/io/ostream.h:59:14: note: candidate: ‘ozo::ostream& ozo::ostream::write(bool)’
   59 |     ostream& write(bool in) {
      |              ^~~~~
/home/jonesmz/ozo/include/ozo/io/ostream.h:59:25: note:   no known conversion for argument 1 from ‘ozo::detail::typed_buffer<int>’ to ‘bool’
   59 |     ostream& write(bool in) {
      |                    ~~~~~^~
/home/jonesmz/ozo/include/ozo/io/ostream.h:65:40: note: candidate: ‘template<class T> ozo::Require<HanaSequence<T>, ozo::ostream&> ozo::ostream::write(const T&)’
   65 |     Require<HanaSequence<T>, ostream&> write(const T& in) {
      |                                        ^~~~~
/home/jonesmz/ozo/include/ozo/io/ostream.h:65:40: note:   template argument deduction/substitution failed:
/home/jonesmz/ozo/include/ozo/io/ostream.h:71:38: note: candidate: ‘template<class T> ozo::Require<HanaStruct<T>, ozo::ostream&> ozo::ostream::write(const T&)’
   71 |     Require<HanaStruct<T>, ostream&> write(const T& in) {
      |                                      ^~~~~
/home/jonesmz/ozo/include/ozo/io/ostream.h:71:38: note:   template argument deduction/substitution failed:
/home/jonesmz/ozo/include/ozo/io/ostream.h: In instantiation of ‘ozo::Require<(Integral<T> && (sizeof (T) != 1)), ozo::ostream&> ozo::ostream::write(T) [with T = unsigned int; ozo::Require<(Integral<T> && (sizeof (T) != 1)), ozo::ostream&> = ozo::ostream&]’:
/home/jonesmz/ozo/include/ozo/io/ostream.h:81:45:   required from ‘ozo::ostream& ozo::write(ozo::ostream&, Ts&& ...) [with Ts = {unsigned int}]’
/home/jonesmz/ozo/include/ozo/io/send.h:132:10:   required from ‘ozo::ostream& ozo::send_frame(ozo::ostream&, const OidMap&, const In&) [with OidMap = ozo::oid_map_t<fusion_test_struct, hana_test_struct>; In = std::__cxx11::basic_string<char>]’
/home/jonesmz/ozo/include/ozo/io/composite.h:82:23:   required from ‘ozo::detail::send_composite_impl<T>::apply(ozo::ostream&, const OidMap&, const T&) [with OidMap = ozo::oid_map_t<fusion_test_struct, hana_test_struct>; T = hana_test_struct]::<lambda(const auto:10&)> [with auto:10 = std::__cxx11::basic_string<char>]’
/usr/include/boost/hana/for_each.hpp:46:45:   required from ‘constexpr void boost::hana::detail::on_each<F>::operator()(Xs&& ...) const [with Xs = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, long int}; F = ozo::detail::send_composite_impl<T>::apply(ozo::ostream&, const OidMap&, const T&) [with OidMap = ozo::oid_map_t<fusion_test_struct, hana_test_struct>; T = hana_test_struct]::<lambda(const auto:10&)>*]’
/usr/include/boost/hana/basic_tuple.hpp:135:39:   required from ‘static constexpr decltype(auto) boost::hana::unpack_impl<boost::hana::basic_tuple_tag>::apply(boost::hana::detail::basic_tuple_impl<std::integer_sequence<long unsigned int, _Idx ...>, Xn ...>&&, F&&) [with long unsigned int ...i = {0, 1}; Xn = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, long int}; F = boost::hana::detail::on_each<ozo::detail::send_composite_impl<T>::apply(ozo::ostream&, const OidMap&, const T&) [with OidMap = ozo::oid_map_t<fusion_test_struct, hana_test_struct>; T = hana_test_struct]::<lambda(const auto:10&)>*>]’
/usr/include/boost/hana/unpack.hpp:47:29:   [ skipping 3 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/boost/hana/for_each.hpp:56:25:   required from ‘static constexpr void boost::hana::for_each_impl<T, boost::hana::when<condition> >::apply(Xs&&, F&&) [with Xs = boost::hana::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, long int>; F = ozo::detail::send_composite_impl<T>::apply(ozo::ostream&, const OidMap&, const T&) [with OidMap = ozo::oid_map_t<fusion_test_struct, hana_test_struct>; T = hana_test_struct]::<lambda(const auto:10&)>; T = boost::hana::tuple_tag; bool condition = true]’
/usr/include/boost/hana/for_each.hpp:35:30:   required from ‘constexpr void boost::hana::for_each_t::operator()(Xs&&, F&&) const [with Xs = boost::hana::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, long int>; F = ozo::detail::send_composite_impl<T>::apply(ozo::ostream&, const OidMap&, const T&) [with OidMap = ozo::oid_map_t<fusion_test_struct, hana_test_struct>; T = hana_test_struct]::<lambda(const auto:10&)>]’
/home/jonesmz/ozo/include/ozo/io/composite.h:70:19:   required from ‘constexpr ozo::Require<HanaStruct<T> > ozo::detail::for_each_member(T&&, Func&&) [with T = const hana_test_struct&; Func = ozo::detail::send_composite_impl<T>::apply(ozo::ostream&, const OidMap&, const T&) [with OidMap = ozo::oid_map_t<fusion_test_struct, hana_test_struct>; T = hana_test_struct]::<lambda(const auto:10&)>; ozo::Require<HanaStruct<T> > = void]’
/home/jonesmz/ozo/include/ozo/io/composite.h:81:24:   required from ‘static ozo::ostream& ozo::detail::send_composite_impl<T>::apply(ozo::ostream&, const OidMap&, const T&) [with OidMap = ozo::oid_map_t<fusion_test_struct, hana_test_struct>; T = hana_test_struct]’
/home/jonesmz/ozo/include/ozo/io/send.h:94:69:   required from ‘ozo::ostream& ozo::send(ozo::ostream&, const OidMap&, const In&) [with OidMap = ozo::oid_map_t<fusion_test_struct, hana_test_struct>; In = hana_test_struct]’
/home/jonesmz/ozo/tests/composite.cpp:99:29:   required from here
/home/jonesmz/ozo/include/ozo/io/ostream.h:51:25: error: no matching function for call to ‘ozo::ostream::write(ozo::detail::typed_buffer<unsigned int>&)’
   51 |         return write(buf);
      |                         ^
/home/jonesmz/ozo/include/ozo/io/ostream.h:25:14: note: candidate: ‘ozo::ostream& ozo::ostream::write(const char_type*, std::streamsize)’
   25 |     ostream& write(const char_type* s, std::streamsize n) {
      |              ^~~~~
/home/jonesmz/ozo/include/ozo/io/ostream.h:25:14: note:   candidate expects 2 arguments, 1 provided
/home/jonesmz/ozo/include/ozo/io/ostream.h:36:54: note: candidate: ‘template<class T> ozo::Require<(Integral<T> && (sizeof (T) == 1)), ozo::ostream&> ozo::ostream::write(T)’
   36 |     Require<Integral<T> && sizeof(T) == 1, ostream&> write(T in) {
      |                                                      ^~~~~
/home/jonesmz/ozo/include/ozo/io/ostream.h:36:54: note:   template argument deduction/substitution failed:
/home/jonesmz/ozo/include/ozo/io/ostream.h:41:43: note: candidate: ‘template<class T> ozo::Require<RawDataReadable<T>, ozo::ostream&> ozo::ostream::write(const T&)’
   41 |     Require<RawDataReadable<T>, ostream&> write(const T& in) {
      |                                           ^~~~~
/home/jonesmz/ozo/include/ozo/io/ostream.h:41:43: note:   template argument deduction/substitution failed:
/home/jonesmz/ozo/include/ozo/io/ostream.h:48:54: note: candidate: ‘template<class T> ozo::Require<(Integral<T> && (sizeof (T) != 1)), ozo::ostream&> ozo::ostream::write(T)’
   48 |     Require<Integral<T> && sizeof(T) != 1, ostream&> write(T in) {
      |                                                      ^~~~~
/home/jonesmz/ozo/include/ozo/io/ostream.h:48:54: note:   template argument deduction/substitution failed:
/home/jonesmz/ozo/include/ozo/io/ostream.h:55:41: note: candidate: ‘template<class T> ozo::Require<FloatingPoint<T>, ozo::ostream&> ozo::ostream::write(T)’
   55 |     Require<FloatingPoint<T>, ostream&> write(T in) {
      |                                         ^~~~~
/home/jonesmz/ozo/include/ozo/io/ostream.h:55:41: note:   template argument deduction/substitution failed:
/home/jonesmz/ozo/include/ozo/io/ostream.h:59:14: note: candidate: ‘ozo::ostream& ozo::ostream::write(bool)’
   59 |     ostream& write(bool in) {
      |              ^~~~~
/home/jonesmz/ozo/include/ozo/io/ostream.h:59:25: note:   no known conversion for argument 1 from ‘ozo::detail::typed_buffer<unsigned int>’ to ‘bool’
   59 |     ostream& write(bool in) {
      |                    ~~~~~^~
/home/jonesmz/ozo/include/ozo/io/ostream.h:65:40: note: candidate: ‘template<class T> ozo::Require<HanaSequence<T>, ozo::ostream&> ozo::ostream::write(const T&)’
   65 |     Require<HanaSequence<T>, ostream&> write(const T& in) {
      |                                        ^~~~~
/home/jonesmz/ozo/include/ozo/io/ostream.h:65:40: note:   template argument deduction/substitution failed:
/home/jonesmz/ozo/include/ozo/io/ostream.h:71:38: note: candidate: ‘template<class T> ozo::Require<HanaStruct<T>, ozo::ostream&> ozo::ostream::write(const T&)’
   71 |     Require<HanaStruct<T>, ostream&> write(const T& in) {
      |                                      ^~~~~
/home/jonesmz/ozo/include/ozo/io/ostream.h:71:38: note:   template argument deduction/substitution failed:
In file included from /home/jonesmz/ozo/include/ozo/impl/async_request.h:9,
                 from /home/jonesmz/ozo/include/ozo/impl/request_oid_map.h:3,
                 from /home/jonesmz/ozo/include/ozo/impl/async_connect.h:7,
                 from /home/jonesmz/ozo/include/ozo/connection_info.h:5,
                 from /home/jonesmz/ozo/tests/connection_pool.cpp:4:
/home/jonesmz/ozo/include/ozo/query_builder.h:187:16: error: ISO C++ did not adopt string literal operator templates taking an argument pack of characters [-Werror=pedantic]
  187 | constexpr auto operator "" _SQL() {
      |                ^~~~~~~~
In file included from /home/jonesmz/ozo/include/ozo/io/type_traits.h:3,
                 from /home/jonesmz/ozo/include/ozo/io/send.h:7,
                 from /home/jonesmz/ozo/include/ozo/io/composite.h:4,
                 from /home/jonesmz/ozo/tests/composite.cpp:5:
/home/jonesmz/ozo/include/ozo/io/istream.h: In instantiation of ‘ozo::Require<(Integral<T> && (sizeof (T) != 1)), ozo::istream&> ozo::istream::read(T&) [with T = unsigned int; ozo::Require<(Integral<T> && (sizeof (T) != 1)), ozo::istream&> = ozo::istream&]’:
/home/jonesmz/ozo/include/ozo/io/istream.h:107:9:   required from ‘ozo::istream& ozo::read(ozo::istream&, Ts&& ...) [with Ts = {unsigned int&}]’
/home/jonesmz/ozo/include/ozo/io/recv.h:244:17:   required from ‘ozo::istream& ozo::recv_frame(ozo::istream&, const OidMap&, Out&) [with OidMap = ozo::oid_map_t<fusion_test_struct, hana_test_struct>; Out = std::__cxx11::basic_string<char>
’
/home/jonesmz/ozo/include/ozo/io/composite.h:121:23:   required from ‘ozo::detail::recv_hana_adapted_composite_impl<T>::apply(ozo::istream&, ozo::size_type, const OidMap&, T&) [with OidMap = ozo::oid_map_t<fusion_test_struct, hana_test_struct>; T = hana_test_struct; ozo::size_type = int]::<lambda(auto:12)> [with auto:12 = boost::hana::string<'s', 't', 'r', 'i', 'n', 'g'>]’
/usr/include/boost/hana/for_each.hpp:46:45:   required from ‘constexpr void boost::hana::detail::on_each<F>::operator()(Xs&& ...) const [with Xs = {boost::hana::string<'s', 't', 'r', 'i', 'n', 'g'>, boost::hana::string<'n', 'u', 'm', 'b', 'e', 'r'>}; F = ozo::detail::recv_hana_adapted_composite_impl<T>::apply(ozo::istream&, ozo::size_type, const OidMap&, T&) [with OidMap = ozo::oid_map_t<fusion_test_struct, hana_test_struct>; T = hana_test_struct; ozo::size_type = int]::<lambda(auto:12)>*]’
/usr/include/boost/hana/basic_tuple.hpp:135:39:   required from ‘static constexpr decltype(auto) boost::hana::unpack_impl<boost::hana::basic_tuple_tag>::apply(boost::hana::detail::basic_tuple_impl<std::integer_sequence<long unsigned int, _Idx ...>, Xn ...>&&, F&&) [with long unsigned int ...i = {0, 1}; Xn = {boost::hana::string<'s', 't', 'r', 'i', 'n', 'g'>, boost::hana::string<'n', 'u', 'm', 'b', 'e', 'r'>}; F = boost::hana::detail::on_each<ozo::detail::recv_hana_adapted_composite_impl<T>::apply(ozo::istream&, ozo::size_type, const OidMap&, T&) [with OidMap = ozo::oid_map_t<fusion_test_struct, hana_test_struct>; T = hana_test_struct; ozo::size_type = int]::<lambda(auto:12)>*>]’
/usr/include/boost/hana/unpack.hpp:47:29:   [ skipping 4 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/boost/hana/for_each.hpp:35:30:   required from ‘constexpr void boost::hana::for_each_t::operator()(Xs&&, F&&) const [with Xs = boost::hana::tuple<boost::hana::string<'s', 't', 'r', 'i', 'n', 'g'>, boost::hana::string<'n', 'u', 'm', 'b', 'e', 'r'> >; F = ozo::detail::recv_hana_adapted_composite_impl<T>::apply(ozo::istream&, ozo::size_type, const OidMap&, T&) [with OidMap = ozo::oid_map_t<fusion_test_struct, hana_test_struct>; T = hana_test_struct; ozo::size_type = int]::<lambda(auto:12)>]’
/home/jonesmz/ozo/include/ozo/io/composite.h:120:23:   required from ‘static ozo::istream& ozo::detail::recv_hana_adapted_composite_impl<T>::apply(ozo::istream&, ozo::size_type, const OidMap&, T&) [with OidMap = ozo::oid_map_t<fusion_test_struct, hana_test_struct>; T = hana_test_struct; ozo::size_type = int]’
/home/jonesmz/ozo/include/ozo/io/recv.h:160:45:   required from ‘ozo::istream& ozo::detail::recv(ozo::istream&, Oid, ozo::size_type, const OidMap&, Out&) [with OidMap = ozo::oid_map_t<fusion_test_struct, hana_test_struct>; Oid = unsigned int; Out = hana_test_struct; ozo::size_type = int]’
/home/jonesmz/ozo/include/ozo/io/recv.h:201:24:   required from ‘ozo::istream& ozo::recv(ozo::istream&, ozo::oid_t, ozo::size_type, const OidMap&, Out&) [with OidMap = ozo::oid_map_t<fusion_test_struct, hana_test_struct>; Out = hana_test_struct; ozo::oid_t = unsigned int; ozo::size_type = int]’
/home/jonesmz/ozo/include/ozo/io/recv.h:251:9:   required from ‘void ozo::recv(const ozo::value<Result>&, const OidMap&, Out&) [with T = ozo::tests::pg_result_mock; OidMap = ozo::oid_map_t<fusion_test_struct, hana_test_struct>; Out = hana_test_struct]’
/home/jonesmz/ozo/tests/composite.cpp:218:34:   required from here
/home/jonesmz/ozo/include/ozo/io/istream.h:72:9: error: no matching function for call to ‘ozo::istream::read(ozo::detail::typed_buffer<unsigned int>&)’
   72 |         read(buf);
      |         ^~~~
/home/jonesmz/ozo/include/ozo/io/istream.h:38:14: note: candidate: ‘ozo::istream& ozo::istream::read(ozo::istream::char_type*, std::streamsize)’
   38 |     istream& read(char_type* buf, std::streamsize len) noexcept {
      |              ^~~~
/home/jonesmz/ozo/include/ozo/io/istream.h:38:14: note:   candidate expects 2 arguments, 1 provided
/home/jonesmz/ozo/include/ozo/io/istream.h:57:43: note: candidate: ‘template<class T> ozo::Require<RawDataWritable<T>, ozo::istream&> ozo::istream::read(T&)’
   57 |     Require<RawDataWritable<T>, istream&> read(T& out) {
      |                                           ^~~~
/home/jonesmz/ozo/include/ozo/io/istream.h:57:43: note:   template argument deduction/substitution failed:
In file included from /usr/include/boost/hana/core/default.hpp:17,
                 from /usr/include/boost/hana/concept/constant.hpp:16,
                 from /usr/include/boost/hana/core/to.hpp:15,
                 from /home/jonesmz/ozo/include/ozo/pg/handle.h:4,
                 from /home/jonesmz/ozo/include/ozo/impl/result.h:3,
                 from /home/jonesmz/ozo/include/ozo/result.h:3,
                 from /home/jonesmz/ozo/tests/result_mock.h:3,
                 from /home/jonesmz/ozo/tests/composite.cpp:1:
/usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/include/g++-v9/type_traits: In substitution of ‘template<bool _Cond, class _Tp> using enable_if_t = typename std::enable_if::type [with bool _Cond = false; _Tp = ozo::istream&]’:
/home/jonesmz/ozo/include/ozo/core/concept.h:56:7:   required by substitution of ‘template<bool Condition, class Type> using Require = std::enable_if_t<Condition, Type> [with bool Condition = ozo::RawDataWritable<ozo::detail::typed_buffer<unsigned int> >; Type = ozo::istream&]’
/home/jonesmz/ozo/include/ozo/io/istream.h:57:43:   required by substitution of ‘template<class T> ozo::Require<RawDataWritable<T>, ozo::istream&> ozo::istream::read(T&) [with T = ozo::detail::typed_buffer<unsigned int>]’
/home/jonesmz/ozo/include/ozo/io/istream.h:72:9:   required from ‘ozo::Require<(Integral<T> && (sizeof (T) != 1)), ozo::istream&> ozo::istream::read(T&) [with T = unsigned int; ozo::Require<(Integral<T> && (sizeof (T) != 1)), ozo::istream&> = ozo::istream&]’
/home/jonesmz/ozo/include/ozo/io/istream.h:107:9:   required from ‘ozo::istream& ozo::read(ozo::istream&, Ts&& ...) [with Ts = {unsigned int&}]’
/home/jonesmz/ozo/include/ozo/io/recv.h:244:17:   required from ‘ozo::istream& ozo::recv_frame(ozo::istream&, const OidMap&, Out&) [with OidMap = ozo::oid_map_t<fusion_test_struct, hana_test_struct>; Out = std::__cxx11::basic_string<char>
’
/home/jonesmz/ozo/include/ozo/io/composite.h:121:23:   [ skipping 7 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/boost/hana/for_each.hpp:35:30:   required from ‘constexpr void boost::hana::for_each_t::operator()(Xs&&, F&&) const [with Xs = boost::hana::tuple<boost::hana::string<'s', 't', 'r', 'i', 'n', 'g'>, boost::hana::string<'n', 'u', 'm', 'b', 'e', 'r'> >; F = ozo::detail::recv_hana_adapted_composite_impl<T>::apply(ozo::istream&, ozo::size_type, const OidMap&, T&) [with OidMap = ozo::oid_map_t<fusion_test_struct, hana_test_struct>; T = hana_test_struct; ozo::size_type = int]::<lambda(auto:12)>]’
/home/jonesmz/ozo/include/ozo/io/composite.h:120:23:   required from ‘static ozo::istream& ozo::detail::recv_hana_adapted_composite_impl<T>::apply(ozo::istream&, ozo::size_type, const OidMap&, T&) [with OidMap = ozo::oid_map_t<fusion_test_struct, hana_test_struct>; T = hana_test_struct; ozo::size_type = int]’
/home/jonesmz/ozo/include/ozo/io/recv.h:160:45:   required from ‘ozo::istream& ozo::detail::recv(ozo::istream&, Oid, ozo::size_type, const OidMap&, Out&) [with OidMap = ozo::oid_map_t<fusion_test_struct, hana_test_struct>; Oid = unsigned int; Out = hana_test_struct; ozo::size_type = int]’
/home/jonesmz/ozo/include/ozo/io/recv.h:201:24:   required from ‘ozo::istream& ozo::recv(ozo::istream&, ozo::oid_t, ozo::size_type, const OidMap&, Out&) [with OidMap = ozo::oid_map_t<fusion_test_struct, hana_test_struct>; Out = hana_test_struct; ozo::oid_t = unsigned int; ozo::size_type = int]’
/home/jonesmz/ozo/include/ozo/io/recv.h:251:9:   required from ‘void ozo::recv(const ozo::value<Result>&, const OidMap&, Out&) [with T = ozo::tests::pg_result_mock; OidMap = ozo::oid_map_t<fusion_test_struct, hana_test_struct>; Out = hana_test_struct]’
/home/jonesmz/ozo/tests/composite.cpp:218:34:   required from here
/usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/include/g++-v9/type_traits:2384:11: error: no type named ‘type’ in ‘struct std::enable_if<false, ozo::istream&>’
 2384 |     using enable_if_t = typename enable_if<_Cond, _Tp>::type;
      |           ^~~~~~~~~~~
In file included from /home/jonesmz/ozo/include/ozo/io/type_traits.h:3,
                 from /home/jonesmz/ozo/include/ozo/io/send.h:7,
                 from /home/jonesmz/ozo/include/ozo/io/composite.h:4,
                 from /home/jonesmz/ozo/tests/composite.cpp:5:
/home/jonesmz/ozo/include/ozo/io/istream.h: In instantiation of ‘ozo::Require<(Integral<T> && (sizeof (T) != 1)), ozo::istream&> ozo::istream::read(T&) [with T = unsigned int; ozo::Require<(Integral<T> && (sizeof (T) != 1)), ozo::istream&> = ozo::istream&]’:
/home/jonesmz/ozo/include/ozo/io/istream.h:107:9:   required from ‘ozo::istream& ozo::read(ozo::istream&, Ts&& ...) [with Ts = {unsigned int&}]’
/home/jonesmz/ozo/include/ozo/io/recv.h:244:17:   required from ‘ozo::istream& ozo::recv_frame(ozo::istream&, const OidMap&, Out&) [with OidMap = ozo::oid_map_t<fusion_test_struct, hana_test_struct>; Out = std::__cxx11::basic_string<char>
’
/home/jonesmz/ozo/include/ozo/io/composite.h:121:23:   required from ‘ozo::detail::recv_hana_adapted_composite_impl<T>::apply(ozo::istream&, ozo::size_type, const OidMap&, T&) [with OidMap = ozo::oid_map_t<fusion_test_struct, hana_test_struct>; T = hana_test_struct; ozo::size_type = int]::<lambda(auto:12)> [with auto:12 = boost::hana::string<'s', 't', 'r', 'i', 'n', 'g'>]’
/usr/include/boost/hana/for_each.hpp:46:45:   required from ‘constexpr void boost::hana::detail::on_each<F>::operator()(Xs&& ...) const [with Xs = {boost::hana::string<'s', 't', 'r', 'i', 'n', 'g'>, boost::hana::string<'n', 'u', 'm', 'b', 'e', 'r'>}; F = ozo::detail::recv_hana_adapted_composite_impl<T>::apply(ozo::istream&, ozo::size_type, const OidMap&, T&) [with OidMap = ozo::oid_map_t<fusion_test_struct, hana_test_struct>; T = hana_test_struct; ozo::size_type = int]::<lambda(auto:12)>*]’
/usr/include/boost/hana/basic_tuple.hpp:135:39:   required from ‘static constexpr decltype(auto) boost::hana::unpack_impl<boost::hana::basic_tuple_tag>::apply(boost::hana::detail::basic_tuple_impl<std::integer_sequence<long unsigned int, _Idx ...>, Xn ...>&&, F&&) [with long unsigned int ...i = {0, 1}; Xn = {boost::hana::string<'s', 't', 'r', 'i', 'n', 'g'>, boost::hana::string<'n', 'u', 'm', 'b', 'e', 'r'>}; F = boost::hana::detail::on_each<ozo::detail::recv_hana_adapted_composite_impl<T>::apply(ozo::istream&, ozo::size_type, const OidMap&, T&) [with OidMap = ozo::oid_map_t<fusion_test_struct, hana_test_struct>; T = hana_test_struct; ozo::size_type = int]::<lambda(auto:12)>*>]’
/usr/include/boost/hana/unpack.hpp:47:29:   [ skipping 4 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/boost/hana/for_each.hpp:35:30:   required from ‘constexpr void boost::hana::for_each_t::operator()(Xs&&, F&&) const [with Xs = boost::hana::tuple<boost::hana::string<'s', 't', 'r', 'i', 'n', 'g'>, boost::hana::string<'n', 'u', 'm', 'b', 'e', 'r'> >; F = ozo::detail::recv_hana_adapted_composite_impl<T>::apply(ozo::istream&, ozo::size_type, const OidMap&, T&) [with OidMap = ozo::oid_map_t<fusion_test_struct, hana_test_struct>; T = hana_test_struct; ozo::size_type = int]::<lambda(auto:12)>]’
/home/jonesmz/ozo/include/ozo/io/composite.h:120:23:   required from ‘static ozo::istream& ozo::detail::recv_hana_adapted_composite_impl<T>::apply(ozo::istream&, ozo::size_type, const OidMap&, T&) [with OidMap = ozo::oid_map_t<fusion_test_struct, hana_test_struct>; T = hana_test_struct; ozo::size_type = int]’
/home/jonesmz/ozo/include/ozo/io/recv.h:160:45:   required from ‘ozo::istream& ozo::detail::recv(ozo::istream&, Oid, ozo::size_type, const OidMap&, Out&) [with OidMap = ozo::oid_map_t<fusion_test_struct, hana_test_struct>; Oid = unsigned int; Out = hana_test_struct; ozo::size_type = int]’
/home/jonesmz/ozo/include/ozo/io/recv.h:201:24:   required from ‘ozo::istream& ozo::recv(ozo::istream&, ozo::oid_t, ozo::size_type, const OidMap&, Out&) [with OidMap = ozo::oid_map_t<fusion_test_struct, hana_test_struct>; Out = hana_test_struct; ozo::oid_t = unsigned int; ozo::size_type = int]’
/home/jonesmz/ozo/include/ozo/io/recv.h:251:9:   required from ‘void ozo::recv(const ozo::value<Result>&, const OidMap&, Out&) [with T = ozo::tests::pg_result_mock; OidMap = ozo::oid_map_t<fusion_test_struct, hana_test_struct>; Out = hana_test_struct]’
/home/jonesmz/ozo/tests/composite.cpp:218:34:   required from here
/home/jonesmz/ozo/include/ozo/io/istream.h:64:54: note: candidate: ‘template<class T> ozo::Require<(Integral<T> && (sizeof (T) == 1)), ozo::istream&> ozo::istream::read(T&)’
   64 |     Require<Integral<T> && sizeof(T) == 1, istream&> read(T& out) noexcept {
      |                                                      ^~~~
/home/jonesmz/ozo/include/ozo/io/istream.h:64:54: note:   template argument deduction/substitution failed:
/home/jonesmz/ozo/include/ozo/io/istream.h:70:54: note: candidate: ‘template<class T> ozo::Require<(Integral<T> && (sizeof (T) != 1)), ozo::istream&> ozo::istream::read(T&)’
   70 |     Require<Integral<T> && sizeof(T) != 1, istream&> read(T& out) noexcept {
      |                                                      ^~~~
/home/jonesmz/ozo/include/ozo/io/istream.h:70:54: note:   template argument deduction/substitution failed:
/home/jonesmz/ozo/include/ozo/io/istream.h:78:41: note: candidate: ‘template<class T> ozo::Require<FloatingPoint<T>, ozo::istream&> ozo::istream::read(T&)’
   78 |     Require<FloatingPoint<T>, istream&> read(T& out) noexcept {
      |                                         ^~~~
/home/jonesmz/ozo/include/ozo/io/istream.h:78:41: note:   template argument deduction/substitution failed:
/home/jonesmz/ozo/include/ozo/io/istream.h:85:14: note: candidate: ‘ozo::istream& ozo::istream::read(bool&)’
   85 |     istream& read(bool& out) noexcept {
      |              ^~~~
/home/jonesmz/ozo/include/ozo/io/istream.h:85:25: note:   no known conversion for argument 1 from ‘ozo::detail::typed_buffer<unsigned int>’ to ‘bool&’
   85 |     istream& read(bool& out) noexcept {
      |                   ~~~~~~^~~
/home/jonesmz/ozo/include/ozo/io/istream.h:93:38: note: candidate: ‘template<class T> ozo::Require<HanaStruct<T>, ozo::istream&> ozo::istream::read(T&)’
   93 |     Require<HanaStruct<T>, istream&> read(T& out) {
      |                                      ^~~~
/home/jonesmz/ozo/include/ozo/io/istream.h:93:38: note:   template argument deduction/substitution failed:
In file included from /home/jonesmz/ozo/include/ozo/io/send.h:6,
                 from /home/jonesmz/ozo/include/ozo/io/composite.h:4,
                 from /home/jonesmz/ozo/tests/composite.cpp:5:
/home/jonesmz/ozo/include/ozo/io/ostream.h: In instantiation of ‘ozo::Require<(Integral<T> && (sizeof (T) != 1)), ozo::ostream&> ozo::ostream::write(T) [with T = long int; ozo::Require<(Integral<T> && (sizeof (T) != 1)), ozo::ostream&> = ozo::ostream&]’:
/home/jonesmz/ozo/include/ozo/io/ostream.h:81:45:   required from ‘ozo::ostream& ozo::write(ozo::ostream&, Ts&& ...) [with Ts = {const long int&}]’
/home/jonesmz/ozo/include/ozo/io/send.h:56:21:   required from ‘static ozo::ostream& ozo::send_impl<In, <template-parameter-1-2> >::apply(ozo::ostream&, const OidMap&, const In&) [with OidMap = ozo::oid_map_t<fusion_test_struct, hana_test_struct>; In = long int; <template-parameter-1-2> = void]’
/home/jonesmz/ozo/include/ozo/io/send.h:94:69:   required from ‘ozo::ostream& ozo::send(ozo::ostream&, const OidMap&, const In&) [with OidMap = ozo::oid_map_t<fusion_test_struct, hana_test_struct>; In = long int]’
/home/jonesmz/ozo/include/ozo/io/send.h:113:16:   required from ‘ozo::ostream& ozo::send_data_frame(ozo::ostream&, const OidMap&, const In&) [with OidMap = ozo::oid_map_t<fusion_test_struct, hana_test_struct>; In = long int]’
/home/jonesmz/ozo/include/ozo/io/send.h:133:27:   required from ‘ozo::ostream& ozo::send_frame(ozo::ostream&, const OidMap&, const In&) [with OidMap = ozo::oid_map_t<fusion_test_struct, hana_test_struct>; In = long int]’
/home/jonesmz/ozo/include/ozo/io/composite.h:82:23:   [ skipping 6 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/boost/hana/for_each.hpp:56:25:   required from ‘static constexpr void boost::hana::for_each_impl<T, boost::hana::when<condition> >::apply(Xs&&, F&&) [with Xs = boost::hana::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, long int>; F = ozo::detail::send_composite_impl<T>::apply(ozo::ostream&, const OidMap&, const T&) [with OidMap = ozo::oid_map_t<fusion_test_struct, hana_test_struct>; T = hana_test_struct]::<lambda(const auto:10&)>; T = boost::hana::tuple_tag; bool condition = true]’
/usr/include/boost/hana/for_each.hpp:35:30:   required from ‘constexpr void boost::hana::for_each_t::operator()(Xs&&, F&&) const [with Xs = boost::hana::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, long int>; F = ozo::detail::send_composite_impl<T>::apply(ozo::ostream&, const OidMap&, const T&) [with OidMap = ozo::oid_map_t<fusion_test_struct, hana_test_struct>; T = hana_test_struct]::<lambda(const auto:10&)>]’
/home/jonesmz/ozo/include/ozo/io/composite.h:70:19:   required from ‘constexpr ozo::Require<HanaStruct<T> > ozo::detail::for_each_member(T&&, Func&&) [with T = const hana_test_struct&; Func = ozo::detail::send_composite_impl<T>::apply(ozo::ostream&, const OidMap&, const T&) [with OidMap = ozo::oid_map_t<fusion_test_struct, hana_test_struct>; T = hana_test_struct]::<lambda(const auto:10&)>; ozo::Require<HanaStruct<T> > = void]’
/home/jonesmz/ozo/include/ozo/io/composite.h:81:24:   required from ‘static ozo::ostream& ozo::detail::send_composite_impl<T>::apply(ozo::ostream&, const OidMap&, const T&) [with OidMap = ozo::oid_map_t<fusion_test_struct, hana_test_struct>; T = hana_test_struct]’
/home/jonesmz/ozo/include/ozo/io/send.h:94:69:   required from ‘ozo::ostream& ozo::send(ozo::ostream&, const OidMap&, const In&) [with OidMap = ozo::oid_map_t<fusion_test_struct, hana_test_struct>; In = hana_test_struct]’
/home/jonesmz/ozo/tests/composite.cpp:99:29:   required from here
/home/jonesmz/ozo/include/ozo/io/ostream.h:51:25: error: no matching function for call to ‘ozo::ostream::write(ozo::detail::typed_buffer<long int>&)’
   51 |         return write(buf);
      |                         ^
/home/jonesmz/ozo/include/ozo/io/ostream.h:25:14: note: candidate: ‘ozo::ostream& ozo::ostream::write(const char_type*, std::streamsize)’
   25 |     ostream& write(const char_type* s, std::streamsize n) {
      |              ^~~~~
/home/jonesmz/ozo/include/ozo/io/ostream.h:25:14: note:   candidate expects 2 arguments, 1 provided
/home/jonesmz/ozo/include/ozo/io/ostream.h:36:54: note: candidate: ‘template<class T> ozo::Require<(Integral<T> && (sizeof (T) == 1)), ozo::ostream&> ozo::ostream::write(T)’
   36 |     Require<Integral<T> && sizeof(T) == 1, ostream&> write(T in) {
      |                                                      ^~~~~
/home/jonesmz/ozo/include/ozo/io/ostream.h:36:54: note:   template argument deduction/substitution failed:
/home/jonesmz/ozo/include/ozo/io/ostream.h:41:43: note: candidate: ‘template<class T> ozo::Require<RawDataReadable<T>, ozo::ostream&> ozo::ostream::write(const T&)’
   41 |     Require<RawDataReadable<T>, ostream&> write(const T& in) {
      |                                           ^~~~~
/home/jonesmz/ozo/include/ozo/io/ostream.h:41:43: note:   template argument deduction/substitution failed:
/home/jonesmz/ozo/include/ozo/io/ostream.h:48:54: note: candidate: ‘template<class T> ozo::Require<(Integral<T> && (sizeof (T) != 1)), ozo::ostream&> ozo::ostream::write(T)’
   48 |     Require<Integral<T> && sizeof(T) != 1, ostream&> write(T in) {
      |                                                      ^~~~~
/home/jonesmz/ozo/include/ozo/io/ostream.h:48:54: note:   template argument deduction/substitution failed:
/home/jonesmz/ozo/include/ozo/io/ostream.h:55:41: note: candidate: ‘template<class T> ozo::Require<FloatingPoint<T>, ozo::ostream&> ozo::ostream::write(T)’
   55 |     Require<FloatingPoint<T>, ostream&> write(T in) {
      |                                         ^~~~~
/home/jonesmz/ozo/include/ozo/io/ostream.h:55:41: note:   template argument deduction/substitution failed:
/home/jonesmz/ozo/include/ozo/io/ostream.h:59:14: note: candidate: ‘ozo::ostream& ozo::ostream::write(bool)’
   59 |     ostream& write(bool in) {
      |              ^~~~~
/home/jonesmz/ozo/include/ozo/io/ostream.h:59:25: note:   no known conversion for argument 1 from ‘ozo::detail::typed_buffer<long int>’ to ‘bool’
   59 |     ostream& write(bool in) {
      |                    ~~~~~^~
/home/jonesmz/ozo/include/ozo/io/ostream.h:65:40: note: candidate: ‘template<class T> ozo::Require<HanaSequence<T>, ozo::ostream&> ozo::ostream::write(const T&)’
   65 |     Require<HanaSequence<T>, ostream&> write(const T& in) {
      |                                        ^~~~~
/home/jonesmz/ozo/include/ozo/io/ostream.h:65:40: note:   template argument deduction/substitution failed:
/home/jonesmz/ozo/include/ozo/io/ostream.h:71:38: note: candidate: ‘template<class T> ozo::Require<HanaStruct<T>, ozo::ostream&> ozo::ostream::write(const T&)’
   71 |     Require<HanaStruct<T>, ostream&> write(const T& in) {
      |                                      ^~~~~
/home/jonesmz/ozo/include/ozo/io/ostream.h:71:38: note:   template argument deduction/substitution failed:
In file included from /home/jonesmz/ozo/include/ozo/io/type_traits.h:3,
                 from /home/jonesmz/ozo/include/ozo/io/send.h:7,
                 from /home/jonesmz/ozo/include/ozo/io/array.h:4,
                 from /home/jonesmz/ozo/tests/binary_deserialization.cpp:3:
/home/jonesmz/ozo/include/ozo/io/istream.h: In instantiation of ‘ozo::Require<(Integral<T> && (sizeof (T) != 1)), ozo::istream&> ozo::istream::read(T&) [with T = long int; ozo::Require<(Integral<T> && (sizeof (T) != 1)), ozo::istream&> = ozo::istream&]’:
/home/jonesmz/ozo/include/ozo/io/istream.h:107:9:   required from ‘ozo::istream& ozo::read(ozo::istream&, Ts&& ...) [with Ts = {long int&}]’
/home/jonesmz/ozo/tests/binary_deserialization.cpp:46:5:   required from here
/home/jonesmz/ozo/include/ozo/io/istream.h:72:9: error: no matching function for call to ‘ozo::istream::read(ozo::detail::typed_buffer<long int>&)’
   72 |         read(buf);
      |         ^~~~
/home/jonesmz/ozo/include/ozo/io/istream.h:38:14: note: candidate: ‘ozo::istream& ozo::istream::read(ozo::istream::char_type*, std::streamsize)’
   38 |     istream& read(char_type* buf, std::streamsize len) noexcept {
      |              ^~~~
/home/jonesmz/ozo/include/ozo/io/istream.h:38:14: note:   candidate expects 2 arguments, 1 provided
/home/jonesmz/ozo/include/ozo/io/istream.h:57:43: note: candidate: ‘template<class T> ozo::Require<RawDataWritable<T>, ozo::istream&> ozo::istream::read(T&)’
   57 |     Require<RawDataWritable<T>, istream&> read(T& out) {
      |                                           ^~~~
/home/jonesmz/ozo/include/ozo/io/istream.h:57:43: note:   template argument deduction/substitution failed:
In file included from /usr/include/boost/hana/core/default.hpp:17,
                 from /usr/include/boost/hana/concept/constant.hpp:16,
                 from /usr/include/boost/hana/core/to.hpp:15,
                 from /home/jonesmz/ozo/include/ozo/pg/handle.h:4,
                 from /home/jonesmz/ozo/include/ozo/impl/result.h:3,
                 from /home/jonesmz/ozo/include/ozo/result.h:3,
                 from /home/jonesmz/ozo/tests/result_mock.h:3,
                 from /home/jonesmz/ozo/tests/binary_deserialization.cpp:1:
/usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/include/g++-v9/type_traits: In substitution of ‘template<bool _Cond, class _Tp> using enable_if_t = typename std::enable_if::type [with bool _Cond = false; _Tp = ozo::istream&]’:
/home/jonesmz/ozo/include/ozo/core/concept.h:56:7:   required by substitution of ‘template<bool Condition, class Type> using Require = std::enable_if_t<Condition, Type> [with bool Condition = ozo::RawDataWritable<ozo::detail::typed_buffer<long int> >; Type = ozo::istream&]’
/home/jonesmz/ozo/include/ozo/io/istream.h:57:43:   required by substitution of ‘template<class T> ozo::Require<RawDataWritable<T>, ozo::istream&> ozo::istream::read(T&) [with T = ozo::detail::typed_buffer<long int>]’
/home/jonesmz/ozo/include/ozo/io/istream.h:72:9:   required from ‘ozo::Require<(Integral<T> && (sizeof (T) != 1)), ozo::istream&> ozo::istream::read(T&) [with T = long int; ozo::Require<(Integral<T> && (sizeof (T) != 1)), ozo::istream&> = ozo::istream&]’
/home/jonesmz/ozo/include/ozo/io/istream.h:107:9:   required from ‘ozo::istream& ozo::read(ozo::istream&, Ts&& ...) [with Ts = {long int&}]’
/home/jonesmz/ozo/tests/binary_deserialization.cpp:46:5:   required from here
/usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/include/g++-v9/type_traits:2384:11: error: no type named ‘type’ in ‘struct std::enable_if<false, ozo::istream&>’
 2384 |     using enable_if_t = typename enable_if<_Cond, _Tp>::type;
      |           ^~~~~~~~~~~
In file included from /home/jonesmz/ozo/include/ozo/io/type_traits.h:3,
                 from /home/jonesmz/ozo/include/ozo/io/send.h:7,
                 from /home/jonesmz/ozo/include/ozo/io/array.h:4,
                 from /home/jonesmz/ozo/tests/binary_deserialization.cpp:3:
/home/jonesmz/ozo/include/ozo/io/istream.h: In instantiation of ‘ozo::Require<(Integral<T> && (sizeof (T) != 1)), ozo::istream&> ozo::istream::read(T&) [with T = long int; ozo::Require<(Integral<T> && (sizeof (T) != 1)), ozo::istream&> = ozo::istream&]’:
/home/jonesmz/ozo/include/ozo/io/istream.h:107:9:   required from ‘ozo::istream& ozo::read(ozo::istream&, Ts&& ...) [with Ts = {long int&}]’
/home/jonesmz/ozo/tests/binary_deserialization.cpp:46:5:   required from here
/home/jonesmz/ozo/include/ozo/io/istream.h:64:54: note: candidate: ‘template<class T> ozo::Require<(Integral<T> && (sizeof (T) == 1)), ozo::istream&> ozo::istream::read(T&)’
   64 |     Require<Integral<T> && sizeof(T) == 1, istream&> read(T& out) noexcept {
      |                                                      ^~~~
/home/jonesmz/ozo/include/ozo/io/istream.h:64:54: note:   template argument deduction/substitution failed:
/home/jonesmz/ozo/include/ozo/io/istream.h:70:54: note: candidate: ‘template<class T> ozo::Require<(Integral<T> && (sizeof (T) != 1)), ozo::istream&> ozo::istream::read(T&)’
   70 |     Require<Integral<T> && sizeof(T) != 1, istream&> read(T& out) noexcept {
      |                                                      ^~~~
/home/jonesmz/ozo/include/ozo/io/istream.h:70:54: note:   template argument deduction/substitution failed:
/home/jonesmz/ozo/include/ozo/io/istream.h:78:41: note: candidate: ‘template<class T> ozo::Require<FloatingPoint<T>, ozo::istream&> ozo::istream::read(T&)’
   78 |     Require<FloatingPoint<T>, istream&> read(T& out) noexcept {
      |                                         ^~~~
/home/jonesmz/ozo/include/ozo/io/istream.h:78:41: note:   template argument deduction/substitution failed:
/home/jonesmz/ozo/include/ozo/io/istream.h:85:14: note: candidate: ‘ozo::istream& ozo::istream::read(bool&)’
   85 |     istream& read(bool& out) noexcept {
      |              ^~~~
/home/jonesmz/ozo/include/ozo/io/istream.h:85:25: note:   no known conversion for argument 1 from ‘ozo::detail::typed_buffer<long int>’ to ‘bool&’
   85 |     istream& read(bool& out) noexcept {
      |                   ~~~~~~^~~
/home/jonesmz/ozo/include/ozo/io/istream.h:93:38: note: candidate: ‘template<class T> ozo::Require<HanaStruct<T>, ozo::istream&> ozo::istream::read(T&)’
   93 |     Require<HanaStruct<T>, istream&> read(T& out) {
      |                                      ^~~~
/home/jonesmz/ozo/include/ozo/io/istream.h:93:38: note:   template argument deduction/substitution failed:
In file included from /home/jonesmz/ozo/include/ozo/io/type_traits.h:3,
                 from /home/jonesmz/ozo/include/ozo/io/send.h:7,
                 from /home/jonesmz/ozo/include/ozo/io/composite.h:4,
                 from /home/jonesmz/ozo/tests/composite.cpp:5:
/home/jonesmz/ozo/include/ozo/io/istream.h: In instantiation of ‘ozo::Require<(Integral<T> && (sizeof (T) != 1)), ozo::istream&> ozo::istream::read(T&) [with T = long int; ozo::Require<(Integral<T> && (sizeof (T) != 1)), ozo::istream&> = ozo::istream&]’:
/home/jonesmz/ozo/include/ozo/io/istream.h:107:9:   required from ‘ozo::istream& ozo::read(ozo::istream&, Ts&& ...) [with Ts = {long int&}]’
/home/jonesmz/ozo/include/ozo/io/recv.h:121:20:   required from ‘static ozo::istream& ozo::recv_impl<Out, <template-parameter-1-2> >::apply(ozo::istream&, ozo::size_type, const OidMap&, Out&) [with OidMap = ozo::oid_map_t<fusion_test_struct, hana_test_struct>; Out = long int; <template-parameter-1-2> = void; ozo::size_type = int]’
/home/jonesmz/ozo/include/ozo/io/recv.h:160:45:   required from ‘ozo::istream& ozo::detail::recv(ozo::istream&, Oid, ozo::size_type, const OidMap&, Out&) [with OidMap = ozo::oid_map_t<fusion_test_struct, hana_test_struct>; Oid = unsigned int; Out = long int; ozo::size_type = int]’
/home/jonesmz/ozo/include/ozo/io/recv.h:201:24:   required from ‘ozo::istream& ozo::recv(ozo::istream&, ozo::oid_t, ozo::size_type, const OidMap&, Out&) [with OidMap = ozo::oid_map_t<fusion_test_struct, hana_test_struct>; Out = long int; ozo::oid_t = unsigned int; ozo::size_type = int]’
/home/jonesmz/ozo/include/ozo/io/recv.h:167:16:   required from ‘ozo::istream& ozo::detail::recv_data_frame(ozo::istream&, Oid, const OidMap&, Out&) [with OidMap = ozo::oid_map_t<fusion_test_struct, hana_test_struct>; Oid = unsigned int; Out = long int]’
/home/jonesmz/ozo/include/ozo/io/recv.h:245:35:   [ skipping 8 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/boost/hana/for_each.hpp:35:30:   required from ‘constexpr void boost::hana::for_each_t::operator()(Xs&&, F&&) const [with Xs = boost::hana::tuple<boost::hana::string<'s', 't', 'r', 'i', 'n', 'g'>, boost::hana::string<'n', 'u', 'm', 'b', 'e', 'r'> >; F = ozo::detail::recv_hana_adapted_composite_impl<T>::apply(ozo::istream&, ozo::size_type, const OidMap&, T&) [with OidMap = ozo::oid_map_t<fusion_test_struct, hana_test_struct>; T = hana_test_struct; ozo::size_type = int]::<lambda(auto:12)>]’
/home/jonesmz/ozo/include/ozo/io/composite.h:120:23:   required from ‘static ozo::istream& ozo::detail::recv_hana_adapted_composite_impl<T>::apply(ozo::istream&, ozo::size_type, const OidMap&, T&) [with OidMap = ozo::oid_map_t<fusion_test_struct, hana_test_struct>; T = hana_test_struct; ozo::size_type = int]’
/home/jonesmz/ozo/include/ozo/io/recv.h:160:45:   required from ‘ozo::istream& ozo::detail::recv(ozo::istream&, Oid, ozo::size_type, const OidMap&, Out&) [with OidMap = ozo::oid_map_t<fusion_test_struct, hana_test_struct>; Oid = unsigned int; Out = hana_test_struct; ozo::size_type = int]’
/home/jonesmz/ozo/include/ozo/io/recv.h:201:24:   required from ‘ozo::istream& ozo::recv(ozo::istream&, ozo::oid_t, ozo::size_type, const OidMap&, Out&) [with OidMap = ozo::oid_map_t<fusion_test_struct, hana_test_struct>; Out = hana_test_struct; ozo::oid_t = unsigned int; ozo::size_type = int]’
/home/jonesmz/ozo/include/ozo/io/recv.h:251:9:   required from ‘void ozo::recv(const ozo::value<Result>&, const OidMap&, Out&) [with T = ozo::tests::pg_result_mock; OidMap = ozo::oid_map_t<fusion_test_struct, hana_test_struct>; Out = hana_test_struct]’
/home/jonesmz/ozo/tests/composite.cpp:218:34:   required from here
/home/jonesmz/ozo/include/ozo/io/istream.h:72:9: error: no matching function for call to ‘ozo::istream::read(ozo::detail::typed_buffer<long int>&)’
   72 |         read(buf);
      |         ^~~~
/home/jonesmz/ozo/include/ozo/io/istream.h:38:14: note: candidate: ‘ozo::istream& ozo::istream::read(ozo::istream::char_type*, std::streamsize)’
   38 |     istream& read(char_type* buf, std::streamsize len) noexcept {
      |              ^~~~
/home/jonesmz/ozo/include/ozo/io/istream.h:38:14: note:   candidate expects 2 arguments, 1 provided
/home/jonesmz/ozo/include/ozo/io/istream.h:57:43: note: candidate: ‘template<class T> ozo::Require<RawDataWritable<T>, ozo::istream&> ozo::istream::read(T&)’
   57 |     Require<RawDataWritable<T>, istream&> read(T& out) {
      |                                           ^~~~
/home/jonesmz/ozo/include/ozo/io/istream.h:57:43: note:   template argument deduction/substitution failed:
/home/jonesmz/ozo/include/ozo/io/istream.h:64:54: note: candidate: ‘template<class T> ozo::Require<(Integral<T> && (sizeof (T) == 1)), ozo::istream&> ozo::istream::read(T&)’
   64 |     Require<Integral<T> && sizeof(T) == 1, istream&> read(T& out) noexcept {
      |                                                      ^~~~
/home/jonesmz/ozo/include/ozo/io/istream.h:64:54: note:   template argument deduction/substitution failed:
/home/jonesmz/ozo/include/ozo/io/istream.h:70:54: note: candidate: ‘template<class T> ozo::Require<(Integral<T> && (sizeof (T) != 1)), ozo::istream&> ozo::istream::read(T&)’
   70 |     Require<Integral<T> && sizeof(T) != 1, istream&> read(T& out) noexcept {
      |                                                      ^~~~
/home/jonesmz/ozo/include/ozo/io/istream.h:70:54: note:   template argument deduction/substitution failed:
/home/jonesmz/ozo/include/ozo/io/istream.h:78:41: note: candidate: ‘template<class T> ozo::Require<FloatingPoint<T>, ozo::istream&> ozo::istream::read(T&)’
   78 |     Require<FloatingPoint<T>, istream&> read(T& out) noexcept {
      |                                         ^~~~
/home/jonesmz/ozo/include/ozo/io/istream.h:78:41: note:   template argument deduction/substitution failed:
/home/jonesmz/ozo/include/ozo/io/istream.h:85:14: note: candidate: ‘ozo::istream& ozo::istream::read(bool&)’
   85 |     istream& read(bool& out) noexcept {
      |              ^~~~
/home/jonesmz/ozo/include/ozo/io/istream.h:85:25: note:   no known conversion for argument 1 from ‘ozo::detail::typed_buffer<long int>’ to ‘bool&’
   85 |     istream& read(bool& out) noexcept {
      |                   ~~~~~~^~~
/home/jonesmz/ozo/include/ozo/io/istream.h:93:38: note: candidate: ‘template<class T> ozo::Require<HanaStruct<T>, ozo::istream&> ozo::istream::read(T&)’
   93 |     Require<HanaStruct<T>, istream&> read(T& out) {
      |                                      ^~~~
/home/jonesmz/ozo/include/ozo/io/istream.h:93:38: note:   template argument deduction/substitution failed:
make[2]: *** [tests/CMakeFiles/ozo_tests.dir/build.make:102: tests/CMakeFiles/ozo_tests.dir/binary_serialization.cpp.o] Error 1
make[2]: *** [tests/CMakeFiles/ozo_tests.dir/build.make:89: tests/CMakeFiles/ozo_tests.dir/binary_query.cpp.o] Error 1
In file included from /home/jonesmz/ozo/include/ozo/impl/async_request.h:9,
                 from /home/jonesmz/ozo/tests/impl/async_get_result.cpp:4:
/home/jonesmz/ozo/include/ozo/query_builder.h:187:16: error: ISO C++ did not adopt string literal operator templates taking an argument pack of characters [-Werror=pedantic]
  187 | constexpr auto operator "" _SQL() {
      |                ^~~~~~~~
In file included from /home/jonesmz/ozo/include/ozo/impl/async_request.h:9,
                 from /home/jonesmz/ozo/include/ozo/impl/request_oid_map.h:3,
                 from /home/jonesmz/ozo/include/ozo/impl/async_connect.h:7,
                 from /home/jonesmz/ozo/tests/impl/async_connect.cpp:4:
/home/jonesmz/ozo/include/ozo/query_builder.h:187:16: error: ISO C++ did not adopt string literal operator templates taking an argument pack of characters [-Werror=pedantic]
  187 | constexpr auto operator "" _SQL() {
      |                ^~~~~~~~
make[2]: *** [tests/CMakeFiles/ozo_tests.dir/build.make:128: tests/CMakeFiles/ozo_tests.dir/composite.cpp.o] Error 1
/home/jonesmz/ozo/include/ozo/io/istream.h: In instantiation of ‘ozo::Require<(Integral<T> && (sizeof (T) != 1)), ozo::istream&> ozo::istream::read(T&) [with T = int; ozo::Require<(Integral<T> && (sizeof (T) != 1)), ozo::istream&> = ozo::istream&]’:
/home/jonesmz/ozo/include/ozo/io/istream.h:107:9:   required from ‘ozo::istream& ozo::read(ozo::istream&, Ts&& ...) [with Ts = {int&}]’
/home/jonesmz/ozo/include/ozo/io/recv.h:121:20:   required from ‘static ozo::istream& ozo::recv_impl<Out, <template-parameter-1-2> >::apply(ozo::istream&, ozo::size_type, const OidMap&, Out&) [with OidMap = ozo::oid_map_t<>; Out = int; <template-parameter-1-2> = void; ozo::size_type = int]’
/home/jonesmz/ozo/include/ozo/io/recv.h:160:45:   required from ‘ozo::istream& ozo::detail::recv(ozo::istream&, Oid, ozo::size_type, const OidMap&, Out&) [with OidMap = ozo::oid_map_t<>; Oid = unsigned int; Out = int; ozo::size_type = int
’
/home/jonesmz/ozo/include/ozo/io/recv.h:201:24:   required from ‘ozo::istream& ozo::recv(ozo::istream&, ozo::oid_t, ozo::size_type, const OidMap&, Out&) [with OidMap = ozo::oid_map_t<>; Out = int; ozo::oid_t = unsigned int; ozo::size_type = int]’
/home/jonesmz/ozo/include/ozo/io/recv.h:251:9:   required from ‘void ozo::recv(const ozo::value<Result>&, const OidMap&, Out&) [with T = ozo::tests::pg_result_mock; OidMap = ozo::oid_map_t<>; Out = int]’
/home/jonesmz/ozo/tests/binary_deserialization.cpp:66:5:   required from here
/home/jonesmz/ozo/include/ozo/io/istream.h:72:9: error: no matching function for call to ‘ozo::istream::read(ozo::detail::typed_buffer<int>&)’
   72 |         read(buf);
      |         ^~~~
/home/jonesmz/ozo/include/ozo/io/istream.h:38:14: note: candidate: ‘ozo::istream& ozo::istream::read(ozo::istream::char_type*, std::streamsize)’
   38 |     istream& read(char_type* buf, std::streamsize len) noexcept {
      |              ^~~~
/home/jonesmz/ozo/include/ozo/io/istream.h:38:14: note:   candidate expects 2 arguments, 1 provided
/home/jonesmz/ozo/include/ozo/io/istream.h:57:43: note: candidate: ‘template<class T> ozo::Require<RawDataWritable<T>, ozo::istream&> ozo::istream::read(T&)’
   57 |     Require<RawDataWritable<T>, istream&> read(T& out) {
      |                                           ^~~~
/home/jonesmz/ozo/include/ozo/io/istream.h:57:43: note:   template argument deduction/substitution failed:
/home/jonesmz/ozo/include/ozo/io/istream.h:64:54: note: candidate: ‘template<class T> ozo::Require<(Integral<T> && (sizeof (T) == 1)), ozo::istream&> ozo::istream::read(T&)’
   64 |     Require<Integral<T> && sizeof(T) == 1, istream&> read(T& out) noexcept {
      |                                                      ^~~~
/home/jonesmz/ozo/include/ozo/io/istream.h:64:54: note:   template argument deduction/substitution failed:
/home/jonesmz/ozo/include/ozo/io/istream.h:70:54: note: candidate: ‘template<class T> ozo::Require<(Integral<T> && (sizeof (T) != 1)), ozo::istream&> ozo::istream::read(T&)’
   70 |     Require<Integral<T> && sizeof(T) != 1, istream&> read(T& out) noexcept {
      |                                                      ^~~~
/home/jonesmz/ozo/include/ozo/io/istream.h:70:54: note:   template argument deduction/substitution failed:
/home/jonesmz/ozo/include/ozo/io/istream.h:78:41: note: candidate: ‘template<class T> ozo::Require<FloatingPoint<T>, ozo::istream&> ozo::istream::read(T&)’
   78 |     Require<FloatingPoint<T>, istream&> read(T& out) noexcept {
      |                                         ^~~~
/home/jonesmz/ozo/include/ozo/io/istream.h:78:41: note:   template argument deduction/substitution failed:
/home/jonesmz/ozo/include/ozo/io/istream.h:85:14: note: candidate: ‘ozo::istream& ozo::istream::read(bool&)’
   85 |     istream& read(bool& out) noexcept {
      |              ^~~~
/home/jonesmz/ozo/include/ozo/io/istream.h:85:25: note:   no known conversion for argument 1 from ‘ozo::detail::typed_buffer<int>’ to ‘bool&’
   85 |     istream& read(bool& out) noexcept {
      |                   ~~~~~~^~~
/home/jonesmz/ozo/include/ozo/io/istream.h:93:38: note: candidate: ‘template<class T> ozo::Require<HanaStruct<T>, ozo::istream&> ozo::istream::read(T&)’
   93 |     Require<HanaStruct<T>, istream&> read(T& out) {
      |                                      ^~~~
/home/jonesmz/ozo/include/ozo/io/istream.h:93:38: note:   template argument deduction/substitution failed:
/home/jonesmz/ozo/include/ozo/io/istream.h: In instantiation of ‘ozo::Require<(Integral<T> && (sizeof (T) != 1)), ozo::istream&> ozo::istream::read(T&) [with T = short int; ozo::Require<(Integral<T> && (sizeof (T) != 1)), ozo::istream&> = ozo::istream&]’:
/home/jonesmz/ozo/include/ozo/io/istream.h:107:9:   required from ‘ozo::istream& ozo::read(ozo::istream&, Ts&& ...) [with Ts = {short int&}]’
/home/jonesmz/ozo/include/ozo/io/recv.h:121:20:   required from ‘static ozo::istream& ozo::recv_impl<Out, <template-parameter-1-2> >::apply(ozo::istream&, ozo::size_type, const OidMap&, Out&) [with OidMap = ozo::oid_map_t<>; Out = short int; <template-parameter-1-2> = void; ozo::size_type = int]’
/home/jonesmz/ozo/include/ozo/io/recv.h:160:45:   required from ‘ozo::istream& ozo::detail::recv(ozo::istream&, Oid, ozo::size_type, const OidMap&, Out&) [with OidMap = ozo::oid_map_t<>; Oid = unsigned int; Out = short int; ozo::size_type = int]’
/home/jonesmz/ozo/include/ozo/io/recv.h:201:24:   required from ‘ozo::istream& ozo::recv(ozo::istream&, ozo::oid_t, ozo::size_type, const OidMap&, Out&) [with OidMap = ozo::oid_map_t<>; Out = short int; ozo::oid_t = unsigned int; ozo::size_type = int]’
/home/jonesmz/ozo/include/ozo/io/recv.h:251:9:   required from ‘void ozo::recv(const ozo::value<Result>&, const OidMap&, Out&) [with T = ozo::tests::pg_result_mock; OidMap = ozo::oid_map_t<>; Out = short int]’
/home/jonesmz/ozo/tests/binary_deserialization.cpp:104:34:   required from here
/home/jonesmz/ozo/include/ozo/io/istream.h:72:9: error: no matching function for call to ‘ozo::istream::read(ozo::detail::typed_buffer<short int>&)’
   72 |         read(buf);
      |         ^~~~
/home/jonesmz/ozo/include/ozo/io/istream.h:38:14: note: candidate: ‘ozo::istream& ozo::istream::read(ozo::istream::char_type*, std::streamsize)’
   38 |     istream& read(char_type* buf, std::streamsize len) noexcept {
      |              ^~~~
/home/jonesmz/ozo/include/ozo/io/istream.h:38:14: note:   candidate expects 2 arguments, 1 provided
/home/jonesmz/ozo/include/ozo/io/istream.h:57:43: note: candidate: ‘template<class T> ozo::Require<RawDataWritable<T>, ozo::istream&> ozo::istream::read(T&)’
   57 |     Require<RawDataWritable<T>, istream&> read(T& out) {
      |                                           ^~~~
/home/jonesmz/ozo/include/ozo/io/istream.h:57:43: note:   template argument deduction/substitution failed:
/home/jonesmz/ozo/include/ozo/io/istream.h:64:54: note: candidate: ‘template<class T> ozo::Require<(Integral<T> && (sizeof (T) == 1)), ozo::istream&> ozo::istream::read(T&)’
   64 |     Require<Integral<T> && sizeof(T) == 1, istream&> read(T& out) noexcept {
      |                                                      ^~~~
/home/jonesmz/ozo/include/ozo/io/istream.h:64:54: note:   template argument deduction/substitution failed:
/home/jonesmz/ozo/include/ozo/io/istream.h:70:54: note: candidate: ‘template<class T> ozo::Require<(Integral<T> && (sizeof (T) != 1)), ozo::istream&> ozo::istream::read(T&)’
   70 |     Require<Integral<T> && sizeof(T) != 1, istream&> read(T& out) noexcept {
      |                                                      ^~~~
/home/jonesmz/ozo/include/ozo/io/istream.h:70:54: note:   template argument deduction/substitution failed:
/home/jonesmz/ozo/include/ozo/io/istream.h:78:41: note: candidate: ‘template<class T> ozo::Require<FloatingPoint<T>, ozo::istream&> ozo::istream::read(T&)’
   78 |     Require<FloatingPoint<T>, istream&> read(T& out) noexcept {
      |                                         ^~~~
/home/jonesmz/ozo/include/ozo/io/istream.h:78:41: note:   template argument deduction/substitution failed:
/home/jonesmz/ozo/include/ozo/io/istream.h:85:14: note: candidate: ‘ozo::istream& ozo::istream::read(bool&)’
   85 |     istream& read(bool& out) noexcept {
      |              ^~~~
/home/jonesmz/ozo/include/ozo/io/istream.h:85:25: note:   no known conversion for argument 1 from ‘ozo::detail::typed_buffer<short int>’ to ‘bool&’
   85 |     istream& read(bool& out) noexcept {
      |                   ~~~~~~^~~
/home/jonesmz/ozo/include/ozo/io/istream.h:93:38: note: candidate: ‘template<class T> ozo::Require<HanaStruct<T>, ozo::istream&> ozo::istream::read(T&)’
   93 |     Require<HanaStruct<T>, istream&> read(T& out) {
      |                                      ^~~~
/home/jonesmz/ozo/include/ozo/io/istream.h:93:38: note:   template argument deduction/substitution failed:
In file included from /home/jonesmz/ozo/include/ozo/impl/async_request.h:9,
                 from /home/jonesmz/ozo/tests/impl/async_send_query_params.cpp:4:
/home/jonesmz/ozo/include/ozo/query_builder.h:187:16: error: ISO C++ did not adopt string literal operator templates taking an argument pack of characters [-Werror=pedantic]
  187 | constexpr auto operator "" _SQL() {
      |                ^~~~~~~~
cc1plus: all warnings being treated as errors
make[2]: *** [tests/CMakeFiles/ozo_tests.dir/build.make:154: tests/CMakeFiles/ozo_tests.dir/connection_info.cpp.o] Error 1
/home/jonesmz/ozo/include/ozo/io/istream.h: In instantiation of ‘ozo::Require<(Integral<T> && (sizeof (T) != 1)), ozo::istream&> ozo::istream::read(T&) [with T = unsigned int; ozo::Require<(Integral<T> && (sizeof (T) != 1)), ozo::istream&> = ozo::istream&]’:
/home/jonesmz/ozo/include/ozo/io/istream.h:95:13:   required from ‘ozo::istream::read(T&) [with T = ozo::detail::pg_array; ozo::Require<HanaStruct<T>, ozo::istream&> = ozo::istream&]::<lambda(auto:3)> [with auto:3 = boost::hana::string<'e', 'l', 'e', 'm', 't', 'y', 'p', 'e'>]’
/usr/include/boost/hana/for_each.hpp:46:45:   required from ‘constexpr void boost::hana::detail::on_each<F>::operator()(Xs&& ...) const [with Xs = {boost::hana::string<'d', 'i', 'm', 'e', 'n', 's', 'i', 'o', 'n', 's', '_', 'c', 'o', 'u', 'n', 't'>, boost::hana::string<'d', 'a', 't', 'a', 'o', 'f', 'f', 's', 'e', 't'>, boost::hana::string<'e', 'l', 'e', 'm', 't', 'y', 'p', 'e'>}; F = ozo::istream::read(T&) [with T = ozo::detail::pg_array; ozo::Require<HanaStruct<T>, ozo::istream&> = ozo::istream&]::<lambda(auto:3)>*]’
/usr/include/boost/hana/basic_tuple.hpp:135:39:   required from ‘static constexpr decltype(auto) boost::hana::unpack_impl<boost::hana::basic_tuple_tag>::apply(boost::hana::detail::basic_tuple_impl<std::integer_sequence<long unsigned int, _Idx ...>, Xn ...>&&, F&&) [with long unsigned int ...i = {0, 1, 2}; Xn = {boost::hana::string<'d', 'i', 'm', 'e', 'n', 's', 'i', 'o', 'n', 's', '_', 'c', 'o', 'u', 'n', 't'>, boost::hana::string<'d', 'a', 't', 'a', 'o', 'f', 'f', 's', 'e', 't'>, boost::hana::string<'e', 'l', 'e', 'm', 't', 'y', 'p', 'e'>}; F = boost::hana::detail::on_each<ozo::istream::read(T&) [with T = ozo::detail::pg_array; ozo::Require<HanaStruct<T>, ozo::istream&> = ozo::istream&]::<lambda(auto:3)>*>]’
/usr/include/boost/hana/unpack.hpp:47:29:   required from ‘constexpr decltype(auto) boost::hana::unpack_t::operator()(Xs&&, F&&) const [with Xs = boost::hana::basic_tuple<boost::hana::string<'d', 'i', 'm', 'e', 'n', 's', 'i', 'o', 'n', 's', '_', 'c', 'o', 'u', 'n', 't'>, boost::hana::string<'d', 'a', 't', 'a', 'o', 'f', 'f', 's', 'e', 't'>, boost::hana::string<'e', 'l', 'e', 'm', 't', 'y', 'p', 'e'> >; F = boost::hana::detail::on_each<ozo::istream::read(T&) [with T = ozo::detail::pg_array; ozo::Require<HanaStruct<T>, ozo::istream&> = ozo::istream&]::<lambda(auto:3)>*>]’
/usr/include/boost/hana/tuple.hpp:233:32:   required from ‘static constexpr decltype(auto) boost::hana::unpack_impl<boost::hana::tuple_tag>::apply(Xs&&, F&&) [with Xs = boost::hana::tuple<boost::hana::string<'d', 'i', 'm', 'e', 'n', 's', 'i', 'o', 'n', 's', '_', 'c', 'o', 'u', 'n', 't'>, boost::hana::string<'d', 'a', 't', 'a', 'o', 'f', 'f', 's', 'e', 't'>, boost::hana::string<'e', 'l', 'e', 'm', 't', 'y', 'p', 'e'> >; F = boost::hana::detail::on_each<ozo::istream::read(T&) [with T = ozo::detail::pg_array; ozo::Require<HanaStruct<T>, ozo::istream&> = ozo::istream&]::<lambda(auto:3)>*>]’
/usr/include/boost/hana/unpack.hpp:47:29:   [ skipping 4 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/home/jonesmz/ozo/include/ozo/io/istream.h:107:9:   required from ‘ozo::istream& ozo::read(ozo::istream&, Ts&& ...) [with Ts = {ozo::detail::pg_array&}]’
/home/jonesmz/ozo/include/ozo/io/array.h:138:30:   required from ‘static ozo::istream& ozo::detail::recv_array_impl<T>::apply(ozo::istream&, ozo::size_type, const OidMap&, ozo::detail::recv_array_impl<T>::out_type&) [with OidMap = ozo::oid_map_t<>; T = std::vector<std::__cxx11::basic_string<char> >; ozo::size_type = int; ozo::detail::recv_array_impl<T>::out_type = std::vector<std::__cxx11::basic_string<char> >]’
/home/jonesmz/ozo/include/ozo/io/recv.h:160:45:   required from ‘ozo::istream& ozo::detail::recv(ozo::istream&, Oid, ozo::size_type, const OidMap&, Out&) [with OidMap = ozo::oid_map_t<>; Oid = unsigned int; Out = std::vector<std::__cxx11::basic_string<char> >; ozo::size_type = int]’
/home/jonesmz/ozo/include/ozo/io/recv.h:201:24:   required from ‘ozo::istream& ozo::recv(ozo::istream&, ozo::oid_t, ozo::size_type, const OidMap&, Out&) [with OidMap = ozo::oid_map_t<>; Out = std::vector<std::__cxx11::basic_string<char> >; ozo::oid_t = unsigned int; ozo::size_type = int]’
/home/jonesmz/ozo/include/ozo/io/recv.h:251:9:   required from ‘void ozo::recv(const ozo::value<Result>&, const OidMap&, Out&) [with T = ozo::tests::pg_result_mock; OidMap = ozo::oid_map_t<>; Out = std::vector<std::__cxx11::basic_string<char> >]’
/home/jonesmz/ozo/tests/binary_deserialization.cpp:212:34:   required from here
/home/jonesmz/ozo/include/ozo/io/istream.h:72:9: error: no matching function for call to ‘ozo::istream::read(ozo::detail::typed_buffer<unsigned int>&)’
   72 |         read(buf);
      |         ^~~~
/home/jonesmz/ozo/include/ozo/io/istream.h:38:14: note: candidate: ‘ozo::istream& ozo::istream::read(ozo::istream::char_type*, std::streamsize)’
   38 |     istream& read(char_type* buf, std::streamsize len) noexcept {
      |              ^~~~
/home/jonesmz/ozo/include/ozo/io/istream.h:38:14: note:   candidate expects 2 arguments, 1 provided
/home/jonesmz/ozo/include/ozo/io/istream.h:57:43: note: candidate: ‘template<class T> ozo::Require<RawDataWritable<T>, ozo::istream&> ozo::istream::read(T&)’
   57 |     Require<RawDataWritable<T>, istream&> read(T& out) {
      |                                           ^~~~
/home/jonesmz/ozo/include/ozo/io/istream.h:57:43: note:   template argument deduction/substitution failed:
/home/jonesmz/ozo/include/ozo/io/istream.h:64:54: note: candidate: ‘template<class T> ozo::Require<(Integral<T> && (sizeof (T) == 1)), ozo::istream&> ozo::istream::read(T&)’
   64 |     Require<Integral<T> && sizeof(T) == 1, istream&> read(T& out) noexcept {
      |                                                      ^~~~
/home/jonesmz/ozo/include/ozo/io/istream.h:64:54: note:   template argument deduction/substitution failed:
/home/jonesmz/ozo/include/ozo/io/istream.h:70:54: note: candidate: ‘template<class T> ozo::Require<(Integral<T> && (sizeof (T) != 1)), ozo::istream&> ozo::istream::read(T&)’
   70 |     Require<Integral<T> && sizeof(T) != 1, istream&> read(T& out) noexcept {
      |                                                      ^~~~
/home/jonesmz/ozo/include/ozo/io/istream.h:70:54: note:   template argument deduction/substitution failed:
/home/jonesmz/ozo/include/ozo/io/istream.h:78:41: note: candidate: ‘template<class T> ozo::Require<FloatingPoint<T>, ozo::istream&> ozo::istream::read(T&)’
   78 |     Require<FloatingPoint<T>, istream&> read(T& out) noexcept {
      |                                         ^~~~
/home/jonesmz/ozo/include/ozo/io/istream.h:78:41: note:   template argument deduction/substitution failed:
/home/jonesmz/ozo/include/ozo/io/istream.h:85:14: note: candidate: ‘ozo::istream& ozo::istream::read(bool&)’
   85 |     istream& read(bool& out) noexcept {
      |              ^~~~
/home/jonesmz/ozo/include/ozo/io/istream.h:85:25: note:   no known conversion for argument 1 from ‘ozo::detail::typed_buffer<unsigned int>’ to ‘bool&’
   85 |     istream& read(bool& out) noexcept {
      |                   ~~~~~~^~~
/home/jonesmz/ozo/include/ozo/io/istream.h:93:38: note: candidate: ‘template<class T> ozo::Require<HanaStruct<T>, ozo::istream&> ozo::istream::read(T&)’
   93 |     Require<HanaStruct<T>, istream&> read(T& out) {
      |                                      ^~~~
/home/jonesmz/ozo/include/ozo/io/istream.h:93:38: note:   template argument deduction/substitution failed:
In file included from /home/jonesmz/ozo/include/ozo/impl/async_request.h:9,
                 from /home/jonesmz/ozo/include/ozo/impl/request_oid_map.h:3,
                 from /home/jonesmz/ozo/include/ozo/impl/async_connect.h:7,
                 from /home/jonesmz/ozo/include/ozo/connection_info.h:5,
                 from /home/jonesmz/ozo/tests/impl/request_oid_map.cpp:3:
/home/jonesmz/ozo/include/ozo/query_builder.h:187:16: error: ISO C++ did not adopt string literal operator templates taking an argument pack of characters [-Werror=pedantic]
  187 | constexpr auto operator "" _SQL() {
      |                ^~~~~~~~
make[2]: *** [tests/CMakeFiles/ozo_tests.dir/build.make:76: tests/CMakeFiles/ozo_tests.dir/binary_deserialization.cpp.o] Error 1
cc1plus: all warnings being treated as errors
In file included from /home/jonesmz/ozo/include/ozo/impl/async_request.h:9,
                 from /home/jonesmz/ozo/include/ozo/impl/request_oid_map.h:3,
                 from /home/jonesmz/ozo/include/ozo/impl/async_connect.h:7,
                 from /home/jonesmz/ozo/tests/impl/request_oid_map_handler.cpp:4:
/home/jonesmz/ozo/include/ozo/query_builder.h:187:16: error: ISO C++ did not adopt string literal operator templates taking an argument pack of characters [-Werror=pedantic]
  187 | constexpr auto operator "" _SQL() {
      |                ^~~~~~~~
make[2]: *** [tests/CMakeFiles/ozo_tests.dir/build.make:323: tests/CMakeFiles/ozo_tests.dir/detail/begin_statement_builder.cpp.o] Error 1
In file included from /home/jonesmz/ozo/include/ozo/impl/async_request.h:9,
                 from /home/jonesmz/ozo/include/ozo/impl/async_execute.h:4,
                 from /home/jonesmz/ozo/include/ozo/impl/async_start_transaction.h:4,
                 from /home/jonesmz/ozo/tests/impl/async_start_transaction.cpp:4:
/home/jonesmz/ozo/include/ozo/query_builder.h:187:16: error: ISO C++ did not adopt string literal operator templates taking an argument pack of characters [-Werror=pedantic]
  187 | constexpr auto operator "" _SQL() {
      |                ^~~~~~~~
In file included from /home/jonesmz/ozo/include/ozo/impl/async_request.h:9,
                 from /home/jonesmz/ozo/include/ozo/impl/async_execute.h:4,
                 from /home/jonesmz/ozo/include/ozo/impl/async_end_transaction.h:4,
                 from /home/jonesmz/ozo/tests/impl/async_end_transaction.cpp:4:
/home/jonesmz/ozo/include/ozo/query_builder.h:187:16: error: ISO C++ did not adopt string literal operator templates taking an argument pack of characters [-Werror=pedantic]
  187 | constexpr auto operator "" _SQL() {
      |                ^~~~~~~~
cc1plus: all warnings being treated as errors
make[2]: *** [tests/CMakeFiles/ozo_tests.dir/build.make:375: tests/CMakeFiles/ozo_tests.dir/impl/request_oid_map.cpp.o] Error 1
cc1plus: all warnings being treated as errors
make[2]: *** [tests/CMakeFiles/ozo_tests.dir/build.make:388: tests/CMakeFiles/ozo_tests.dir/impl/request_oid_map_handler.cpp.o] Error 1
cc1plus: all warnings being treated as errors
make[2]: *** [tests/CMakeFiles/ozo_tests.dir/build.make:284: tests/CMakeFiles/ozo_tests.dir/impl/async_send_query_params.cpp.o] Error 1
cc1plus: all warnings being treated as errors
make[2]: *** [tests/CMakeFiles/ozo_tests.dir/build.make:414: tests/CMakeFiles/ozo_tests.dir/impl/async_end_transaction.cpp.o] Error 1
cc1plus: all warnings being treated as errors
make[2]: *** [tests/CMakeFiles/ozo_tests.dir/build.make:401: tests/CMakeFiles/ozo_tests.dir/impl/async_start_transaction.cpp.o] Error 1
cc1plus: all warnings being treated as errors
make[2]: *** [tests/CMakeFiles/ozo_tests.dir/build.make:63: tests/CMakeFiles/ozo_tests.dir/impl/async_connect.cpp.o] Error 1
cc1plus: all warnings being treated as errors
make[2]: *** [tests/CMakeFiles/ozo_tests.dir/build.make:167: tests/CMakeFiles/ozo_tests.dir/connection_pool.cpp.o] Error 1
cc1plus: all warnings being treated as errors
make[2]: *** [tests/CMakeFiles/ozo_tests.dir/build.make:297: tests/CMakeFiles/ozo_tests.dir/impl/async_get_result.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:153: tests/CMakeFiles/ozo_tests.dir/all] Error 2
make: *** [Makefile:141: all] Error 2
jonesmz@mzj-mpp-workspace ~/ozo/build $ ctest -V
jonesmz commented 4 years ago

I do not get any warnings, compiler errors, or test failures at all with clang 9.

jonesmz commented 4 years ago

Also effects GCC 9.3.0, so this doesn't appear to be a GCC bug, or if it is, it's a bug that survived a bugfix release.

thed636 commented 4 years ago

Could you try #254 ?

jonesmz commented 4 years ago

Yes.

I will try in approximately 1-2 hours.

jonesmz commented 4 years ago

Had some time earlier than anticipated.

254 does not have a compile error on GCC 9.3 for my machine.

So it appears to fix the problem!