> I have issue with serialization of my structure. Structure is following:
>
> struct point {
>    float ig;
>    std::size_t set;
> };
>
> When I am building my project I get errors typed below. I do not know how
> to fix this.

When compiling with -std=c++17 this should compile without change. For earlier 
versions of the standard, you will have to define a serialization function for 
your type explicitly:

template <typename Archive>
void serialize(Archive& ar, point& pt, unsigned)
{
    ar & pt.ig & pt.set;
}

That should do the trick.

HTH
Regards Hartmut
---------------
http://stellar.cct.lsu.edu
https://github.com/STEllAR-GROUP/hpx


>
> Best,
>
> Karol
>
> --------------------------------------------------------------------------
> --
>
> /home/user/libs/hpx_build_system/include/hpx/runtime/serialization/basic_a
> rchive.hpp:66:13:
> required from 'void
> hpx::serialization::basic_archive<Archive>::invoke(T&) [with T = const
> hpx::util::tuple<std::vector<mdfs::point, std::allocator<mdfs::point> >
> >; Archive = hpx::serialization::output_archive]'
> /home/user/libs/hpx_build_system/include/hpx/runtime/serialization/seriali
> ze.hpp:20:9:
> required from 'hpx::serialization::output_archive&
> hpx::serialization::operator<<(hpx::serialization::output_archive&,
> const T&) [with T = hpx::util::tuple<std::vector<mdfs::point,
> std::allocator<mdfs::point> > >]'
> /home/user/libs/hpx_build_system/include/hpx/runtime/actions/transfer_base
> _action.hpp:306:16:
> required from 'void
> hpx::actions::transfer_base_action<Action>::save_base(hpx::serialization::
> output_archive&)
> [with Action = hpx::lcos::base_lco_with_value<std::vector<mdfs::point>,
> std::vector<mdfs::point>,
> hpx::traits::detail::managed_component_tag>::set_value_action]'
> /home/user/libs/hpx_build_system/include/hpx/runtime/actions/transfer_cont
> inuation_action.hpp:211:9:
> required from 'void
> hpx::actions::transfer_continuation_action<Action>::save(hpx::serializatio
> n::output_archive&)
> [with Action = hpx::lcos::base_lco_with_value<std::vector<mdfs::point>,
> std::vector<mdfs::point>,
> hpx::traits::detail::managed_component_tag>::set_value_action]'
> /home/user/workspace/Masters/mdfs_hpx/main.cc:200:1:   required from here
> /home/user/libs/hpx_build_system/include/hpx/runtime/serialization/access.
> hpp:106:9:
> error: static assertion failed: No serialization method found
>           static_assert(dependent_false<T>::value,
>           ^~~~~~~~~~~~~
> /home/user/libs/hpx_build_system/include/hpx/runtime/serialization/access.
> hpp:
> In instantiation of 'static void
> hpx::serialization::access::serialize_dispatcher<T>::non_intrusive::call(A
> rchive&,
> T&, unsigned int) [with Archive = hpx::serialization::output_archive; T =
> const mdfs::point]':
> /home/user/libs/hpx_build_system/include/hpx/runtime/serialization/access.
> hpp:224:48:
> required from 'static void
> hpx::serialization::access::serialize(Archive&, T&, unsigned int) [with
> Archive = hpx::serialization::output_archive; T = const mdfs::point]'
> /home/user/libs/hpx_build_system/include/hpx/runtime/serialization/output_
> archive.hpp:284:30:
> required from 'void
> hpx::serialization::output_archive::save_nonintrusively_polymorphic(const
> T&, std::false_type) [with T = mdfs::point; std::false_type =
> std::integral_constant<bool, false>]'
> /home/user/libs/hpx_build_system/include/hpx/runtime/serialization/output_
> archive.hpp:260:13:
> required from 'void
> hpx::serialization::output_archive::save_bitwise(const T&,
> std::false_type) [with T = mdfs::point; std::false_type =
> std::integral_constant<bool, false>]'
> /home/user/libs/hpx_build_system/include/hpx/runtime/serialization/output_
> archive.hpp:224:13:
> required from 'typename std::enable_if<((! std::is_integral<_Tp>::value)
> && (! std::is_enum<_Tp>::value))>::type
> hpx::serialization::output_archive::save(const T&) [with T = mdfs::point;
> typename std::enable_if<((! std::is_integral<_Tp>::value) && (!
> std::is_enum<_Tp>::value))>::type = void]'
> /home/user/libs/hpx_build_system/include/hpx/runtime/serialization/output_
> archive.hpp:213:13:
> required from 'void
> hpx::serialization::output_archive::invoke_impl(const T&) [with T =
> mdfs::point]'
> /home/user/libs/hpx_build_system/include/hpx/runtime/serialization/basic_a
> rchive.hpp:66:13:
> [ skipping 33 instantiation contexts, use -ftemplate-backtrace-limit=0 to
> disable ]
> /home/user/libs/hpx_build_system/include/hpx/runtime/serialization/output_
> archive.hpp:213:13:
> required from 'void
> hpx::serialization::output_archive::invoke_impl(const T&) [with T =
> hpx::util::tuple<std::vector<mdfs::point, std::allocator<mdfs::point> >
> >]'
> /home/user/libs/hpx_build_system/include/hpx/runtime/serialization/basic_a
> rchive.hpp:66:13:
> required from 'void
> hpx::serialization::basic_archive<Archive>::invoke(T&) [with T = const
> hpx::util::tuple<std::vector<mdfs::point, std::allocator<mdfs::point> >
> >; Archive = hpx::serialization::output_archive]'
> /home/user/libs/hpx_build_system/include/hpx/runtime/serialization/seriali
> ze.hpp:20:9:
> required from 'hpx::serialization::output_archive&
> hpx::serialization::operator<<(hpx::serialization::output_archive&,
> const T&) [with T = hpx::util::tuple<std::vector<mdfs::point,
> std::allocator<mdfs::point> > >]'
> /home/user/libs/hpx_build_system/include/hpx/runtime/actions/transfer_base
> _action.hpp:306:16:
> required from 'void
> hpx::actions::transfer_base_action<Action>::save_base(hpx::serialization::
> output_archive&)
> [with Action = hpx::lcos::base_lco_with_value<std::vector<mdfs::point>,
> std::vector<mdfs::point>,
> hpx::traits::detail::managed_component_tag>::set_value_action]'
> /home/user/libs/hpx_build_system/include/hpx/runtime/actions/transfer_cont
> inuation_action.hpp:211:9:
> required from 'void
> hpx::actions::transfer_continuation_action<Action>::save(hpx::serializatio
> n::output_archive&)
> [with Action = hpx::lcos::base_lco_with_value<std::vector<mdfs::point>,
> std::vector<mdfs::point>,
> hpx::traits::detail::managed_component_tag>::set_value_action]'
> /home/user/workspace/Masters/mdfs_hpx/main.cc:200:1:   required from here
> /home/user/libs/hpx_build_system/include/hpx/runtime/serialization/access.
> hpp:180:53:
> error: 'call' is not a member of
> 'hpx::serialization::serialize_non_intrusive<const mdfs::point, void>'
>                       serialize_non_intrusive<T>::call(ar, t, 0);
>                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~
> CMakeFiles/MAIN.dir/build.make:62: recipe for target
> 'CMakeFiles/MAIN.dir/main.cc.o' failed
> make[2]: *** [CMakeFiles/MAIN.dir/main.cc.o] Error 1
> CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/MAIN.dir/all'
> failed
> make[1]: *** [CMakeFiles/MAIN.dir/all] Error 2
> Makefile:129: recipe for target 'all' failed
> make: *** [all] Error 2
>
> --
> Supercomputing Frontiers Europe 2020
> Warsaw, Poland, March 23 - 26, 2020
> https://supercomputingfrontiers.eu/2020/
>
> Karol Niedzielewski
> System Administrator
> Interdisciplinary Centre for Mathematical and Computational Modelling
> (ICM), University of Warsaw
>
> ul. Kupiecka 32, 03-046 Warszawa
> www.icm.edu.pl; kdm.icm.edu.pl
>
> _______________________________________________
> hpx-users mailing list
> [email protected]
> https://mail.cct.lsu.edu/mailman/listinfo/hpx-users


_______________________________________________
hpx-users mailing list
[email protected]
https://mail.cct.lsu.edu/mailman/listinfo/hpx-users

Reply via email to