0_0_36538966_18012.cpp: In instantiation of 'static constexpr MontgomeryModInt32<P>::u32 MontgomeryModInt32<P>::get_r() [with unsigned int P = 998244353u; MontgomeryModInt32<P>::u32 = unsigned int]':
0_0_36538966_18012.cpp:37:36: required from 'constexpr const u32 MontgomeryModInt32<998244353u>::r'
0_0_36538966_18012.cpp:40:22: required from 'struct MontgomeryModInt32<998244353u>'
0_0_36538966_18012.cpp:959:12: required from here
0_0_36538966_18012.cpp:35:5: error: body of constexpr function 'static constexpr MontgomeryModInt32<P>::u32 MontgomeryModInt32<P>::get_r() [with unsigned int P = 998244353u; MontgomeryModInt32<P>::u32 = unsigned int]' not a return-statement
}
^
0_0_36538966_18012.cpp: In instantiation of 'constexpr const u32 MontgomeryModInt32<998244353u>::r':
0_0_36538966_18012.cpp:40:22: required from 'struct MontgomeryModInt32<998244353u>'
0_0_36538966_18012.cpp:959:12: required from here
0_0_36538966_18012.cpp:37:36: error: 'static constexpr MontgomeryModInt32<P>::u32 MontgomeryModInt32<P>::get_r() [with unsigned int P = 998244353u; MontgomeryModInt32<P>::u32 = unsigned int]' called in a constant expression
static constexpr u32 r = get_r(), r2 = -u64(P) % P;
^
0_0_36538966_18012.cpp:28:26: note: 'static constexpr MontgomeryModInt32<P>::u32 MontgomeryModInt32<P>::get_r() [with unsigned int P = 998244353u; MontgomeryModInt32<P>::u32 = unsigned int]' is not usable as a constexpr function because:
static constexpr u32 get_r() {
^
0_0_36538966_18012.cpp: In instantiation of 'static constexpr MontgomeryModInt32<P>::u32 MontgomeryModInt32<P>::reduce(MontgomeryModInt32<P>::u64) [with unsigned int P = 998244353u; MontgomeryModInt32<P>::u32 = unsigned int; MontgomeryModInt32<P>::u64 = long long unsigned int]':
0_0_36538966_18012.cpp:98:27: required from 'constexpr MontgomeryModInt32<P>::u32 MontgomeryModInt32<P>::get() const [with unsigned int P = 998244353u; MontgomeryModInt32<P>::u32 = unsigned int]'
0_0_36538966_18012.cpp:963:24: required from here
0_0_36538966_18012.cpp:93:5: error: body of constexpr function 'static constexpr MontgomeryModInt32<P>::u32 MontgomeryModInt32<P>::reduce(MontgomeryModInt32<P>::u64) [with unsigned int P = 998244353u; MontgomeryModInt32<P>::u32 = unsigned int; MontgomeryModInt32<P>::u64 = long long unsigned int]' not a return-statement
}
^
0_0_36538966_18012.cpp: In instantiation of 'constexpr MontgomeryModInt32<P>::u32 MontgomeryModInt32<P>::get() const [with unsigned int P = 998244353u; MontgomeryModInt32<P>::u32 = unsigned int]':
0_0_36538966_18012.cpp:963:24: required from here
0_0_36538966_18012.cpp:100:5: error: body of constexpr function 'constexpr MontgomeryModInt32<P>::u32 MontgomeryModInt32<P>::get() const [with unsigned int P = 998244353u; MontgomeryModInt32<P>::u32 = unsigned int]' not a return-statement
}
^
0_0_36538966_18012.cpp: In instantiation of 'constexpr MontgomeryModInt32<P>& MontgomeryModInt32<P>::operator=(const MontgomeryModInt32<P>&) const [with unsigned int P = 998244353u]':
0_0_36538966_18012.cpp:978:8: required from here
0_0_36538966_18012.cpp:108:18: error: assignment of member 'MontgomeryModInt32<998244353u>::v' in read-only object
return v = rhs.v, *this;
^
0_0_36538966_18012.cpp:108:28: error: invalid initialization of reference of type 'MontgomeryModInt32<998244353u>&' from expression of type 'const MontgomeryModInt32<998244353u>'
return v = rhs.v, *this;
^
0_0_36538966_18012.cpp:109:5: error: body of constexpr function 'constexpr MontgomeryModInt32<P>& MontgomeryModInt32<P>::operator=(const MontgomeryModInt32<P>&) const [with unsigned int P = 998244353u]' not a return-statement
}
^
0_0_36538966_18012.cpp: In instantiation of 'constexpr MontgomeryModInt32<P>& MontgomeryModInt32<P>::operator*=(const MontgomeryModInt32<P>&) const [with unsigned int P = 998244353u]':
0_0_36538966_18012.cpp:139:40: required from 'MontgomeryModInt32<998244353u> operator*(const MontgomeryModInt32<998244353u>&, const MontgomeryModInt32<998244353u>&)'
0_0_36538966_18012.cpp:968:27: required from here
0_0_36538966_18012.cpp:124:18: error: assignment of member 'MontgomeryModInt32<998244353u>::v' in read-only object
return v = reduce(u64(v) * rhs.v), *this;
^
0_0_36538966_18012.cpp:124:45: error: invalid initialization of reference of type 'MontgomeryModInt32<998244353u>&' from expression of type 'const MontgomeryModInt32<998244353u>'
return v = reduce(u64(v) * rhs.v), *this;
^
0_0_36538966_18012.cpp:125:5: error: body of constexpr function 'constexpr MontgomeryModInt32<P>& MontgomeryModInt32<P>::operator*=(const MontgomeryModInt32<P>&) const [with unsigned int P = 998244353u]' not a return-statement
}
^
0_0_36538966_18012.cpp: In instantiation of 'constexpr MontgomeryModInt32<P>& MontgomeryModInt32<P>::operator+=(const MontgomeryModInt32<P>&) const [with unsigned int P = 998244353u]':
0_0_36538966_18012.cpp:363:28: required from 'std::vector<MontgomeryModInt32<P> > mul(const std::vector<MontgomeryModInt32<P> >&, const std::vector<MontgomeryModInt32<P> >&) [with unsigned int P = 998244353u]'
0_0_36538966_18012.cpp:862:20: required from 'std::vector<MontgomeryModInt32<P> > operator*(const std::vector<MontgomeryModInt32<P> >&, const std::vector<MontgomeryModInt32<P> >&) [with unsigned int P = 998244353u]'
0_0_36538966_18012.cpp:1008:40: required from here
0_0_36538966_18012.cpp:118:18: error: assignment of member 'MontgomeryModInt32<998244353u>::v' in read-only object
return v += rhs.v - (P << 1), v += P << 1 & -(v >> 31), *this;
^
0_0_36538966_18012.cpp:118:41: error: assignment of member 'MontgomeryModInt32<998244353u>::v' in read-only object
return v += rhs.v - (P << 1), v += P << 1 & -(v >> 31), *this;
^
0_0_36538966_18012.cpp:118:66: error: invalid initialization of reference of type 'MontgomeryModInt32<998244353u>&' from expression of type 'const MontgomeryModInt32<998244353u>'
return v += rhs.v - (P << 1), v += P << 1 & -(v >> 31), *this;
^
0_0_36538966_18012.cpp:119:5: error: body of constexpr function 'constexpr MontgomeryModInt32<P>& MontgomeryModInt32<P>::operator+=(const MontgomeryModInt32<P>&) const [with unsigned int P = 998244353u]' not a return-statement
}
^
|