Re: [hpx-users] static assertion failed

2020-01-21 Thread Karol Niedzielewski
Hi,

thank you.

Karol

On 19/01/2020 16:29, Hartmut Kaiser wrote:
>> 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 
> 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::invoke(T&) [with T = const
>> hpx::util::tuple >
>>> ; 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::allocator > >]'
>> /home/user/libs/hpx_build_system/include/hpx/runtime/actions/transfer_base
>> _action.hpp:306:16:
>> required from 'void
>> hpx::actions::transfer_base_action::save_base(hpx::serialization::
>> output_archive&)
>> [with Action = hpx::lcos::base_lco_with_value,
>> std::vector,
>> 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::save(hpx::serializatio
>> n::output_archive&)
>> [with Action = hpx::lcos::base_lco_with_value,
>> std::vector,
>> 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::value,
>>^
>> /home/user/libs/hpx_build_system/include/hpx/runtime/serialization/access.
>> hpp:
>> In instantiation of 'static void
>> hpx::serialization::access::serialize_dispatcher::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]'
>> /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]'
>> /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 >
>>> ]'
>> /home/user/libs/hpx_build_system/include/hpx/runtime/serialization/basic_a
>> rchive.hpp:66:13:
>> required from 'void
>> hpx::serialization::basic_archive::invoke(T&) [with T = const
>> hpx::util::tuple >
>>> ; Archive = hpx::serialization::output_archive]'
>> /home/user/libs/hpx_build_system/include/hpx/runtime/serialization/seriali
>> ze.hpp:20:9:
>> required from 

Re: [hpx-users] static assertion failed

2020-01-19 Thread Hartmut Kaiser


> 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 
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::invoke(T&) [with T = const
> hpx::util::tuple >
> >; 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::allocator > >]'
> /home/user/libs/hpx_build_system/include/hpx/runtime/actions/transfer_base
> _action.hpp:306:16:
> required from 'void
> hpx::actions::transfer_base_action::save_base(hpx::serialization::
> output_archive&)
> [with Action = hpx::lcos::base_lco_with_value,
> std::vector,
> 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::save(hpx::serializatio
> n::output_archive&)
> [with Action = hpx::lcos::base_lco_with_value,
> std::vector,
> 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::value,
>   ^
> /home/user/libs/hpx_build_system/include/hpx/runtime/serialization/access.
> hpp:
> In instantiation of 'static void
> hpx::serialization::access::serialize_dispatcher::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]'
> /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]'
> /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 >
> >]'
> /home/user/libs/hpx_build_system/include/hpx/runtime/serialization/basic_a
> rchive.hpp:66:13:
> required from 'void
> hpx::serialization::basic_archive::invoke(T&) [with T = const
> hpx::util::tuple >
> >; 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::allocator > >]'
> 

[hpx-users] static assertion failed

2020-01-19 Thread Karol Niedzielewski
Hi all,

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.

Best,

Karol



/home/user/libs/hpx_build_system/include/hpx/runtime/serialization/basic_archive.hpp:66:13:
 
required from ‘void 
hpx::serialization::basic_archive::invoke(T&) [with T = const 
hpx::util::tuple > 
 >; Archive = hpx::serialization::output_archive]’
/home/user/libs/hpx_build_system/include/hpx/runtime/serialization/serialize.hpp:20:9:
 
required from ‘hpx::serialization::output_archive& 
hpx::serialization::operator<<(hpx::serialization::output_archive&, 
const T&) [with T = hpx::util::tuple > >]’
/home/user/libs/hpx_build_system/include/hpx/runtime/actions/transfer_base_action.hpp:306:16:
 
required from ‘void 
hpx::actions::transfer_base_action::save_base(hpx::serialization::output_archive&)
 
[with Action = hpx::lcos::base_lco_with_value, 
std::vector, 
hpx::traits::detail::managed_component_tag>::set_value_action]’
/home/user/libs/hpx_build_system/include/hpx/runtime/actions/transfer_continuation_action.hpp:211:9:
 
required from ‘void 
hpx::actions::transfer_continuation_action::save(hpx::serialization::output_archive&)
 
[with Action = hpx::lcos::base_lco_with_value, 
std::vector, 
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::value,
  ^
/home/user/libs/hpx_build_system/include/hpx/runtime/serialization/access.hpp: 
In instantiation of ‘static void 
hpx::serialization::access::serialize_dispatcher::non_intrusive::call(Archive&,
 
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]’
/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]’
/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_archive.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 > >]’
/home/user/libs/hpx_build_system/include/hpx/runtime/serialization/basic_archive.hpp:66:13:
 
required from ‘void 
hpx::serialization::basic_archive::invoke(T&) [with T = const 
hpx::util::tuple > 
 >; Archive = hpx::serialization::output_archive]’
/home/user/libs/hpx_build_system/include/hpx/runtime/serialization/serialize.hpp:20:9:
 
required from ‘hpx::serialization::output_archive& 
hpx::serialization::operator<<(hpx::serialization::output_archive&, 
const T&) [with T = hpx::util::tuple > >]’
/home/user/libs/hpx_build_system/include/hpx/runtime/actions/transfer_base_action.hpp:306:16:
 
required from ‘void 
hpx::actions::transfer_base_action::save_base(hpx::serialization::output_archive&)
 
[with Action = hpx::lcos::base_lco_with_value, 
std::vector, 
hpx::traits::detail::managed_component_tag>::set_value_action]’
/home/user/libs/hpx_build_system/include/hpx/runtime/actions/transfer_continuation_action.hpp:211:9:
 
required from ‘void 
hpx::actions::transfer_continuation_action::save(hpx::serialization::output_archive&)
 
[with Action = hpx::lcos::base_lco_with_value, 
std::vector,