Bug fixes
std::void_t
was introduced only in C++17; switched to using a custom implementation (Issue 180).- Fixed two independent bugs in
native/src/CMakeConfig.cmd
: The first prevented SEAL to be built in a directory with spaces in the path due to missing quotation marks. Another issue caused MSVC to fail when building SEAL for multiple architectures. RNSBase::decompose_array
had incorrect semantics that causedEvaluator::multiply_plain_normal
andEvaluator::transform_to_ntt_inplace
(forPlaintext
) to behave incorrectly for some plaintexts.
Other
- Added pkg-config support (PR 181).
seal::util::PtrIter<T *>
now dereferences correctly toT &
instead ofT *
.
This results in simpler code, where insideSEAL_ITERATE
lambda functions dereferences ofseal::util::PtrIter<T *>
do not need to be dereferenced a second time, as was particularly common when iterating overModulusIter
andNTTTablesIter
types.seal::util::IterTuple
now dereferences to anstd::tuple
of dereferences of its component iterators, so it is no longer possible to directly pass a dereferencedseal::util::IterTuple
to an inner lambda function in nestedSEAL_ITERATE
calls.
Instead, the outer lambda function parameter should be wrapped inside another call toseal::util::iter
before passed on to the innerSEAL_ITERATE
to produce an appropriateseal::util::IterTuple
.