再执行cmake --build build 报错如下:
^~~~
D:/test/hehub/hehub-develop/hehub-develop/third-party/range-v3/range/v3/range/ac
cess.hpp:182:36: note: 'ranges::::begin'
RANGES_DEFINE_CPO(begin::fn, begin)
^~~~~
D:/test/hehub/hehub-develop/hehub-develop/third-party/range-v3/range/v3/detail/c
onfig.hpp:601:31: note: in definition of macro 'RANGES_DEFINE_CPO'
inline constexpr type name{};
^~~~
In file included from D:/test/hehub/hehub-develop/hehub-develop/third-party/rang
e-v3/range/v3/view/all.hpp:22,
from D:/test/hehub/hehub-develop/hehub-develop/third-party/rang
e-v3/range/v3/view/zip.hpp:27,
from D:\test\hehub\hehub-develop\hehub-develop\src\fhe\common\m
od_arith.h:8,
from D:\test\hehub\hehub-develop\hehub-develop\src\fhe\common\r
ns.cpp:2:
D:/test/hehub/hehub-develop/hehub-develop/third-party/range-v3/range/v3/range/ac
cess.hpp:85:14: note: 'ranges::begin::begin'
void begin(std::initializer_list) = delete;
^~~~~
D:\test\hehub\hehub-develop\hehub-develop\src\fhe\common\rns.cpp:106:20: error:
'end' was not declared in this scope
for (auto &m : moduli_doubled) {
^~~~~~~~~~~~~~
D:\test\hehub\hehub-develop\hehub-develop\src\fhe\common\rns.cpp:106:20: note: s
uggested alternatives:
In file included from D:/x86_64-8.1.0-release-win32-sjlj-rt_v6-rev0/mingw64/lib/
gcc/x86_64-w64-mingw32/8.1.0/include/c++/string:51,
from D:/x86_64-8.1.0-release-win32-sjlj-rt_v6-rev0/mingw64/lib/
gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/locale_classes.h:40,
from D:/x86_64-8.1.0-release-win32-sjlj-rt_v6-rev0/mingw64/lib/
gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/ios_base.h:41,
from D:/x86_64-8.1.0-release-win32-sjlj-rt_v6-rev0/mingw64/lib/
gcc/x86_64-w64-mingw32/8.1.0/include/c++/ios:42,
from D:/x86_64-8.1.0-release-win32-sjlj-rt_v6-rev0/mingw64/lib/
gcc/x86_64-w64-mingw32/8.1.0/include/c++/istream:38,
from D:/x86_64-8.1.0-release-win32-sjlj-rt_v6-rev0/mingw64/lib/
gcc/x86_64-w64-mingw32/8.1.0/include/c++/sstream:38,
from D:/x86_64-8.1.0-release-win32-sjlj-rt_v6-rev0/mingw64/lib/
gcc/x86_64-w64-mingw32/8.1.0/include/c++/complex:45,
from D:\test\hehub\hehub-develop\hehub-develop\src\fhe\common\t
ype_defs.h:8,
from D:\test\hehub\hehub-develop\hehub-develop\src\fhe\common\a
llocator.h:3,
from D:\test\hehub\hehub-develop\hehub-develop\src\fhe\common\r
ns.h:8,
from D:\test\hehub\hehub-develop\hehub-develop\src\fhe\common\r
ns.cpp:1:
D:/x86_64-8.1.0-release-win32-sjlj-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32
/8.1.0/include/c++/bits/range_access.h:107:37: note: 'std::end'
template const Tp* end(const valarray<Tp>&);
^~~
In file included from D:/test/hehub/hehub-develop/hehub-develop/third-party/rang
e-v3/range/v3/view/all.hpp:22,
from D:/test/hehub/hehub-develop/hehub-develop/third-party/rang
e-v3/range/v3/view/zip.hpp:27,
from D:\test\hehub\hehub-develop\hehub-develop\src\fhe\common\m
od_arith.h:8,
from D:\test\hehub\hehub-develop\hehub-develop\src\fhe\common\r
ns.cpp:2:
D:/test/hehub/hehub-develop/hehub-develop/third-party/range-v3/range/v3/range/ac
cess.hpp:197:14: note: 'ranges::end::end'
void end(std::initializer_list) = delete;
^~~
In file included from D:/test/hehub/hehub-develop/hehub-develop/third-party/rang
e-v3/range/v3/range_fwd.hpp:25,
from D:/test/hehub/hehub-develop/hehub-develop/third-party/rang
e-v3/range/v3/view/zip.hpp:22,
from D:\test\hehub\hehub-develop\hehub-develop\src\fhe\common\m
od_arith.h:8,
from D:\test\hehub\hehub-develop\hehub-develop\src\fhe\common\r
ns.cpp:2:
D:/test/hehub/hehub-develop/hehub-develop/third-party/range-v3/range/v3/range/ac
cess.hpp:313:34: note: 'ranges::::end'
RANGES_DEFINE_CPO(end::fn, end)
^~~
D:/test/hehub/hehub-develop/hehub-develop/third-party/range-v3/range/v3/detail/c
onfig.hpp:601:31: note: in definition of macro 'RANGES_DEFINE_CPO'
inline constexpr type name{};
^~~~
D:/test/hehub/hehub-develop/hehub-develop/third-party/range-v3/range/v3/range/ac
cess.hpp:313:34: note: 'ranges::::end'
RANGES_DEFINE_CPO(end::fn, end)
^~~
D:/test/hehub/hehub-develop/hehub-develop/third-party/range-v3/range/v3/detail/c
onfig.hpp:601:31: note: in definition of macro 'RANGES_DEFINE_CPO'
inline constexpr type name{};
^~~~
D:\test\hehub\hehub-develop\hehub-develop\src\fhe\common\rns.cpp:111:17: error:
no match for 'operator[]' (operand types are 'hehub::RnsIntVec' and 'size_t' {ak
a 'long long unsigned int'})
self[k][i] += moduli_doubled[k] - b[k][i];
^
D:\test\hehub\hehub-develop\hehub-develop\src\fhe\common\rns.cpp:111:43: error:
invalid types 'int[size_t {aka long long unsigned int}]' for array subscript
self[k][i] += moduli_doubled[k] - b[k][i];
^
D:\test\hehub\hehub-develop\hehub-develop\src\fhe\common\rns.cpp:111:48: error:
no match for 'operator[]' (operand types are 'const hehub::RnsIntVec' and 'size
t' {aka 'long long unsigned int'})
self[k][i] += moduli_doubled[k] - b[k][i];
^
D:\test\hehub\hehub-develop\hehub-develop\src\fhe\common\rns.cpp:112:17: error:
no match for 'operator[]' (operand types are 'hehub::RnsIntVec' and 'size_t' {ak
a 'long long unsigned int'})
self[k][i] -=
^
D:\test\hehub\hehub-develop\hehub-develop\src\fhe\common\rns.cpp:113:22: error:
no match for 'operator[]' (operand types are 'hehub::RnsIntVec' and 'size_t' {ak
a 'long long unsigned int'})
(self[k][i] >= moduli_doubled[k]) ? moduli_doubled[k] : 0;
^
D:\test\hehub\hehub-develop\hehub-develop\src\fhe\common\rns.cpp:113:48: error:
invalid types 'int[size_t {aka long long unsigned int}]' for array subscript
(self[k][i] >= moduli_doubled[k]) ? moduli_doubled[k] : 0;
^
D:\test\hehub\hehub-develop\hehub-develop\src\fhe\common\rns.cpp:113:69: error:
invalid types 'int[size_t {aka long long unsigned int}]' for array subscript
(self[k][i] >= moduli_doubled[k]) ? moduli_doubled[k] : 0;
^
D:\test\hehub\hehub-develop\hehub-develop\src\fhe\common\rns.cpp: In function 'h
ehub::RnsIntVec hehub::operator*(const hehub::RnsIntVec&, const hehub::RnsIntVec
&)':
D:\test\hehub\hehub-develop\hehub-develop\src\fhe\common\rns.cpp:127:12: error:
request for member 'resize' in 'moduli', which is of non-class type 'int'
moduli.resize(components);
^~~~~~
D:\test\hehub\hehub-develop\hehub-develop\src\fhe\common\rns.cpp:128:14: error:
request for member 'resize' in 'b_moduli', which is of non-class type 'int'
b_moduli.resize(components);
^~~~~~
D:\test\hehub\hehub-develop\hehub-develop\src\fhe\common\rns.cpp:135:45: error:
invalid types 'int[size_t {aka long long unsigned int}]' for array subscript
batched_mul_mod_hybrid_lazy(moduli[k], dimension, a[k].data(),
^
D:\test\hehub\hehub-develop\hehub-develop\src\fhe\common\rns.cpp:135:60: error:
no match for 'operator[]' (operand types are 'const hehub::RnsIntVec' and 'size_
t' {aka 'long long unsigned int'})
batched_mul_mod_hybrid_lazy(moduli[k], dimension, a[k].data(),
^
D:\test\hehub\hehub-develop\hehub-develop\src\fhe\common\rns.cpp:136:38: error:
no match for 'operator[]' (operand types are 'const hehub::RnsIntVec' and 'size_
t' {aka 'long long unsigned int'})
b[k].data(), result[k].data());
^
D:\test\hehub\hehub-develop\hehub-develop\src\fhe\common\rns.cpp:136:56: error:
no match for 'operator[]' (operand types are 'hehub::RnsIntVec' and 'size_t' {ak
a 'long long unsigned int'})
b[k].data(), result[k].data());
^
D:\test\hehub\hehub-develop\hehub-develop\src\fhe\common\rns.cpp: At global scop
e:
D:\test\hehub\hehub-develop\hehub-develop\src\fhe\common\rns.cpp:142:52: error:
'u64' does not name a type
const RnsIntVec &operator*=(RnsIntVec &self, const u64 small_scalar) {
^~~
D:\test\hehub\hehub-develop\hehub-develop\src\fhe\common\rns.cpp: In function 'c
onst hehub::RnsIntVec& hehub::operator*=(hehub::RnsIntVec&, int)':
D:\test\hehub\hehub-develop\hehub-develop\src\fhe\common\rns.cpp:144:39: error:
invalid types 'int[size_t {aka long long unsigned int}]' for array subscript
auto curr_mod = self.moduli_[k];
^
D:\test\hehub\hehub-develop\hehub-develop\src\fhe\common\rns.cpp:147:32: error:
no match for 'operator[]' (operand types are 'hehub::RnsIntVec' and 'size_t' {ak
a 'long long unsigned int'})
for (auto &coeff : self[k]) {
^
D:\test\hehub\hehub-develop\hehub-develop\src\fhe\common\rns.cpp:148:21: error:
'mul_mod_harvey_lazy' was not declared in this scope
coeff = mul_mod_harvey_lazy(curr_mod, coeff, scalar_reduced,
^~~~~~~~~~~~~~~~~~~
D:\test\hehub\hehub-develop\hehub-develop\src\fhe\common\rns.cpp:148:21: note: s
uggested alternative: 'batched_barrett_lazy'
coeff = mul_mod_harvey_lazy(curr_mod, coeff, scalar_reduced,
^~~~~~~~~~~~~~~~~~~
batched_barrett_lazy
D:\test\hehub\hehub-develop\hehub-develop\src\fhe\common\rns.cpp: At global scop
e:
D:\test\hehub\hehub-develop\hehub-develop\src\fhe\common\rns.cpp:156:47: error:
'u64' was not declared in this scope
const std::vector &rns_scalar) {
^~~
D:\test\hehub\hehub-develop\hehub-develop\src\fhe\common\rns.cpp:156:50: error:
template argument 1 is invalid
const std::vector &rns_scalar) {
^
D:\test\hehub\hehub-develop\hehub-develop\src\fhe\common\rns.cpp:156:50: error:
template argument 2 is invalid
D:\test\hehub\hehub-develop\hehub-develop\src\fhe\common\rns.cpp: In function 'c
onst hehub::RnsIntVec& hehub::operator*=(hehub::RnsIntVec&, const int&)':
D:\test\hehub\hehub-develop\hehub-develop\src\fhe\common\rns.cpp:157:20: error:
request for member 'size' in 'rns_scalar', which is of non-class type 'const int
'
if (rns_scalar.size() != self.component_count()) {
^~~~
D:\test\hehub\hehub-develop\hehub-develop\src\fhe\common\rns.cpp:162:39: error:
invalid types 'int[size_t {aka long long unsigned int}]' for array subscript
auto curr_mod = self.moduli_[k];
^
D:\test\hehub\hehub-develop\hehub-develop\src\fhe\common\rns.cpp:163:43: error:
invalid types 'const int[size_t {aka long long unsigned int}]' for array subscri
pt
auto scalar_reduced = rns_scalar[k] % curr_mod; // need opt?
^
D:\test\hehub\hehub-develop\hehub-develop\src\fhe\common\rns.cpp:165:32: error:
no match for 'operator[]' (operand types are 'hehub::RnsIntVec' and 'size_t' {ak
a 'long long unsigned int'})
for (auto &coeff : self[k]) {
^
D:\test\hehub\hehub-develop\hehub-develop\src\fhe\common\rns.cpp:166:21: error:
'mul_mod_harvey_lazy' was not declared in this scope
coeff = mul_mod_harvey_lazy(curr_mod, coeff, scalar_reduced,
^~~~~~~~~~~~~~~~~~~
D:\test\hehub\hehub-develop\hehub-develop\src\fhe\common\rns.cpp:166:21: note: s
uggested alternative: 'batched_barrett_lazy'
coeff = mul_mod_harvey_lazy(curr_mod, coeff, scalar_reduced,
^~~~~~~~~~~~~~~~~~~
batched_barrett_lazy
D:\test\hehub\hehub-develop\hehub-develop\src\fhe\common\rns.cpp: In function 's
td::ostream& hehub::operator<<(std::ostream&, const hehub::RnsIntVec&)':
D:\test\hehub\hehub-develop\hehub-develop\src\fhe\common\rns.cpp:179:58: error:
no match for call to '(const ranges::views::zip_fn) (const hehub::RnsIntVec&, co
nst int&)'
for (auto [component, modulus] : zip(rns_poly, moduli)) {
^
In file included from D:\test\hehub\hehub-develop\hehub-develop\src\fhe\common\m
od_arith.h:8,
from D:\test\hehub\hehub-develop\hehub-develop\src\fhe\common\r
ns.cpp:2:
D:/test/hehub/hehub-develop/hehub-develop/third-party/range-v3/range/v3/view/zip
.hpp:133:48: note: candidate: 'constexpr ranges::empty_view<std::tuple<> > range
s::views::zip_fn::operator()() const'
constexpr empty_view<std::tuple<>> operator()() const noexcept
^~~~~~~~
D:/test/hehub/hehub-develop/hehub-develop/third-party/range-v3/range/v3/view/zip
.hpp:133:48: note: candidate expects 0 arguments, 2 provided
D:/test/hehub/hehub-develop/hehub-develop/third-party/range-v3/range/v3/view/zip
.hpp:141:38: note: candidate: 'template<class ... Rngs, bool CPP_true, typename
std::enable_if<(and_v<viewable_range...> && CPP_true), int>::type , typename std::enable_if<(and_v<input_range...> && CPP_true), int>::ty
pe , typename std::enable_if<((sizeof... (Rngs) != 0) && CPP_true), i
nt>::type > ranges::zip_view<ranges::views::all_t...> ranges::
views::zip_fn::operator()(Rngs&& ...) const'
zip_view<all_t...> operator()(Rngs &&... rngs) const
^~~~~~~~
D:/test/hehub/hehub-develop/hehub-develop/third-party/range-v3/range/v3/view/zip
.hpp:141:38: note: template argument deduction/substitution failed:
In file included from D:/test/hehub/hehub-develop/hehub-develop/third-party/rang
e-v3/range/v3/range_fwd.hpp:22,
from D:/test/hehub/hehub-develop/hehub-develop/third-party/rang
e-v3/range/v3/view/zip.hpp:22,
from D:\test\hehub\hehub-develop\hehub-develop\src\fhe\common\m
od_arith.h:8,
from D:\test\hehub\hehub-develop\hehub-develop\src\fhe\common\r
ns.cpp:2:
D:/test/hehub/hehub-develop/hehub-develop/third-party/range-v3/concepts/concepts
.hpp:334:35: error: no type named 'type' in 'struct std::enable_if<false, int>'
&& CPP_BOOL(CPP_true), int> = 0, std::enable_if_t<
^
D:/test/hehub/hehub-develop/hehub-develop/third-party/range-v3/concepts/concepts
.hpp:66:35: note: in definition of macro 'CPP_PP_CAT_'
#define CPP_PP_CAT_(X, ...) X ## VA_ARGS
^~~~~~~~~~~
D:/test/hehub/hehub-develop/hehub-develop/third-party/range-v3/concepts/concepts
.hpp:299:9: note: in expansion of macro 'CPP_PP_CAT'
CPP_PP_CAT(CPP_TEMPLATE_SFINAE_AUX_3_, VA_ARGS) &&
^~~~~~~~~~
D:/test/hehub/hehub-develop/hehub-develop/third-party/range-v3/concepts/concepts
.hpp:66:30: note: in expansion of macro 'CPP_TEMPLATE_SFINAE_AUX_0'
#define CPP_PP_CAT_(X, ...) X ## VA_ARGS
^
D:/test/hehub/hehub-develop/hehub-develop/third-party/range-v3/concepts/concepts
.hpp:270:27: note: in expansion of macro 'CPP_TEMPLATE_SFINAE_AUX_'
#define CPP_TEMPLATE_AUX_ CPP_TEMPLATE_SFINAE_AUX_
^~~~~~~~~~~~~~~~~~~~~~~~
D:/test/hehub/hehub-develop/hehub-develop/third-party/range-v3/concepts/concepts
.hpp:195:17: note: in expansion of macro 'CPP_and_sfinae'
#define CPP_and CPP_and_sfinae
^~~~~~~~~~~~~~
D:/test/hehub/hehub-develop/hehub-develop/third-party/range-v3/range/v3/detail/p
rologue.hpp:37:13: note: in expansion of macro 'CPP_and'
#define AND CPP_and
^~~~~~~
D:/test/hehub/hehub-develop/hehub-develop/third-party/range-v3/range/v3/view/zip
.hpp:138:57: note: in expansion of macro 'AND'
requires and_v<viewable_range...> AND
^~~
D:\test\hehub\hehub-develop\hehub-develop\src\fhe\common\rns.cpp:181:34: error:
unable to deduce 'auto&&' from 'component'
for (const auto &coeff : component) {
^~~~~~~~~
mingw32-make.exe[2]: *** [src\fhe\CMakeFiles\hehub.dir\build.make:76: src/fhe/CM
akeFiles/hehub.dir/common/rns.cpp.obj] Error 1
mingw32-make.exe[1]: *** [CMakeFiles\Makefile2:273: src/fhe/CMakeFiles/hehub.dir
/all] Error 2
mingw32-make.exe: *** [Makefile:135: all] Error 2