Bug description
When compiling, there is a problem with the serialization of the bitsets in the test TestAbmSerialization.TestingScheme.
It seems to be a problem correctly detecting the bitset in the serialization templates.
Version
Mac
To reproduce
Build tests as normal.
Relevant log output
uild] In file included from /Users/david/Documents/HZI/memilio/cpp/tests/test_abm_serialization.cpp:20:
[build] In file included from /Users/david/Documents/HZI/memilio/cpp/tests/matchers.h:25:
[build] /Users/david/Documents/HZI/memilio/cpp/memilio/../memilio/io/io.h:853:5: error: no matching function for call to 'serialize_internal'
[build] serialize_internal(io, t);
[build] ^~~~~~~~~~~~~~~~~~
[build] /Users/david/Documents/HZI/memilio/cpp/memilio/../memilio/io/json_serializer.h:416:22: note: in instantiation of function template specialization 'mio::serialize<mio::JsonContext, std::__bit_const_reference<std::vector<bool>>>' requested here
[build] mio::serialize(ctxt, *it);
[build] ^
[build] /Users/david/Documents/HZI/memilio/cpp/memilio/../memilio/io/io.h:853:5: note: in instantiation of function template specialization 'mio::serialize_internal<std::vector<bool>, nullptr>' requested here
[build] serialize_internal(io, t);
[build] ^
[build] /Users/david/Documents/HZI/memilio/cpp/memilio/../memilio/io/json_serializer.h:487:5: note: in instantiation of function template specialization 'mio::serialize<mio::JsonContext, std::vector<bool>>' requested here
[build] serialize(ctxt, t);
[build] ^
[build] /Users/david/Documents/HZI/memilio/cpp/tests/test_abm_serialization.cpp:130:47: note: in instantiation of function template specialization 'mio::serialize_json<std::vector<bool>>' requested here
[build] testing_criteria["ages"]["bitset"] = mio::serialize_json(ages_bits).value();
[build] ^
[build] /Users/david/Documents/HZI/memilio/cpp/memilio/../memilio/io/io.h:708:6: note: candidate template ignored: requirement 'std::is_enum<std::__bit_const_reference<std::vector<bool, std::allocator<bool>>>>::value' was not satisfied [with IOContext = mio::JsonContext, E = std::__bit_const_reference<std::vector<bool>>]
[build] void serialize_internal(IOContext& io, E e)
[build] ^
[build] /Users/david/Documents/HZI/memilio/cpp/memilio/../memilio/io/io.h:746:6: note: candidate template ignored: requirement 'is_expression_valid<serialize_t, mio::JsonContext, std::__bit_const_reference<std::vector<bool, std::allocator<bool>>>>::value' was not satisfied [with IOContext = mio::JsonContext, T = std::__bit_const_reference<std::vector<bool>>]
[build] void serialize_internal(IOContext& io, const T& t)
[build] ^
[build] /Users/david/Documents/HZI/memilio/cpp/memilio/../memilio/io/io.h:802:6: note: candidate template ignored: requirement 'conjunction_v<mio::is_expression_valid<details::compare_iterators_t, std::__bit_const_reference<std::vector<bool, std::allocator<bool>>>>, mio::negation<mio::is_expression_valid<serialize_t, mio::JsonContext, std::__bit_const_reference<std::vector<bool, std::allocator<bool>>>>>>' was not satisfied [with IOContext = mio::JsonContext, Container = std::__bit_const_reference<std::vector<bool>>]
[build] void serialize_internal(IOContext& io, const Container& container)
[build] ^
[build] /Users/david/Documents/HZI/memilio/cpp/memilio/../memilio/io/io.h:611:6: note: candidate template ignored: could not match 'EigenBase' against '__bit_const_reference'
[build] void serialize_internal(IOContext& io, const Eigen::EigenBase<M>& mat)
[build] ^
[build] /Users/david/Documents/HZI/memilio/cpp/memilio/../memilio/io/io.h:658:6: note: candidate template ignored: could not match 'bitset' against '__bit_const_reference'
[build] void serialize_internal(IOContext& io, const std::bitset<N> bitset)
[build] ^
[build] /Users/david/Documents/HZI/memilio/cpp/memilio/../memilio/io/io.h:581:6: note: candidate template ignored: requirement 'is_expression_valid<details::tuple_size_value_t, std::__bit_const_reference<std::vector<bool, std::allocator<bool>>>>::value' was not satisfied [with IOContext = mio::JsonContext, Tup = std::__bit_const_reference<std::vector<bool>>]
[build] void serialize_internal(IOContext& io, const Tup& tup)
[build] ^
[build] /Users/david/Documents/HZI/memilio/cpp/memilio/../memilio/io/default_serialize.h:213:6: note: candidate template ignored: requirement 'is_expression_valid<details::default_serialize_expr_t, std::__bit_const_reference<std::vector<bool, std::allocator<bool>>>>::value' was not satisfied [with IOContext = mio::JsonContext, DefaultSerializable = std::__bit_const_reference<std::vector<bool>>]
[build] void serialize_internal(IOContext& io, const DefaultSerializable& a)
[build] ^
[build] /Users/david/Documents/HZI/memilio/cpp/memilio/../memilio/utils/random_number_generator.h:683:6: note: candidate template ignored: substitution failure [with IOContext = mio::JsonContext, UniformDistributionParams = std::__bit_const_reference<std::vector<bool>>]: no member named 'DistType' in 'std::__bit_const_reference<std::vector<bool>>'
[build] void serialize_internal(IOContext& io, const UniformDistributionParams& p)
[build] ^
[build] /Users/david/Documents/HZI/memilio/cpp/memilio/../memilio/io/json_serializer.h:383:17: note: candidate template ignored: requirement 'JsonType<std::__bit_const_reference<std::vector<bool, std::allocator<bool>>>, void>::value' was not satisfied [with T = std::__bit_const_reference<std::vector<bool>>]
[build] friend void serialize_internal(JsonContext& io, const T& t)
[build] ^
[build] /Users/david/Documents/HZI/memilio/cpp/memilio/../memilio/io/json_serializer.h:408:17: note: candidate template ignored: requirement 'conjunction_v<mio::is_expression_valid<details::compare_iterators_t, std::__bit_const_reference<std::vector<bool, std::allocator<bool>>>>, mio::negation<mio::JsonType<std::__bit_const_reference<std::vector<bool, std::allocator<bool>>>, void>>, mio::negation<mio::is_expression_valid<serialize_t, mio::JsonContext, std::__bit_const_reference<std::vector<bool, std::allocator<bool>>>>>>' was not satisfied [with Container = std::__bit_const_reference<std::vector<bool>>]
[build] friend void serialize_internal(JsonContext& io, const Container& v)
[build] ^
Add any relevant information, e.g. used compiler, screenshots.
Checklist
Bug description
When compiling, there is a problem with the serialization of the bitsets in the test
TestAbmSerialization.TestingScheme.It seems to be a problem correctly detecting the bitset in the serialization templates.
Version
Mac
To reproduce
Build tests as normal.
Relevant log output
Add any relevant information, e.g. used compiler, screenshots.
Checklist