F.A.Q
Hand In Hand
Online Acmers
Problem Archive
Realtime Judge Status
Authors Ranklist
 
     C/C++/Java Exams     
ACM Steps
Go to Job
Contest LiveCast
ICPC@China
Best Coder beta
VIP | STD Contests
    DIY | Web-DIY beta
Author ID 
Password 
 Register new ID

View Compilation Error

0_0_36420142_9048.cpp: In instantiation of 'static constexpr LazyMontgomeryModInt<mod>::u32 LazyMontgomeryModInt<mod>::get_r() [with unsigned int mod = 998244353u; LazyMontgomeryModInt<mod>::u32 = unsigned int]':
0_0_36420142_9048.cpp:33:36:   required from 'constexpr const u32 LazyMontgomeryModInt<998244353u>::r'
0_0_36420142_9048.cpp:44:72:   required from 'static constexpr LazyMontgomeryModInt<mod>::u32 LazyMontgomeryModInt<mod>::reduce(const u64&) [with unsigned int mod = 998244353u; LazyMontgomeryModInt<mod>::u32 = unsigned int; LazyMontgomeryModInt<mod>::u64 = long long unsigned int]'
0_0_36420142_9048.cpp:42:88:   required from 'constexpr LazyMontgomeryModInt<mod>::LazyMontgomeryModInt(const int64_t&) [with unsigned int mod = 998244353u; int64_t = long long int]'
0_0_36420142_9048.cpp:122:50:   required from here
0_0_36420142_9048.cpp:31:5: error: body of constexpr function 'static constexpr LazyMontgomeryModInt<mod>::u32 LazyMontgomeryModInt<mod>::get_r() [with unsigned int mod = 998244353u; LazyMontgomeryModInt<mod>::u32 = unsigned int]' not a return-statement
     }
     ^
0_0_36420142_9048.cpp: In instantiation of 'constexpr const u32 LazyMontgomeryModInt<998244353u>::r':
0_0_36420142_9048.cpp:44:72:   required from 'static constexpr LazyMontgomeryModInt<mod>::u32 LazyMontgomeryModInt<mod>::reduce(const u64&) [with unsigned int mod = 998244353u; LazyMontgomeryModInt<mod>::u32 = unsigned int; LazyMontgomeryModInt<mod>::u64 = long long unsigned int]'
0_0_36420142_9048.cpp:42:88:   required from 'constexpr LazyMontgomeryModInt<mod>::LazyMontgomeryModInt(const int64_t&) [with unsigned int mod = 998244353u; int64_t = long long int]'
0_0_36420142_9048.cpp:122:50:   required from here
0_0_36420142_9048.cpp:33:36: error: 'static constexpr LazyMontgomeryModInt<mod>::u32 LazyMontgomeryModInt<mod>::get_r() [with unsigned int mod = 998244353u; LazyMontgomeryModInt<mod>::u32 = unsigned int]' called in a constant expression
     static constexpr u32 r = get_r();
                                    ^
0_0_36420142_9048.cpp:26:26: note: 'static constexpr LazyMontgomeryModInt<mod>::u32 LazyMontgomeryModInt<mod>::get_r() [with unsigned int mod = 998244353u; LazyMontgomeryModInt<mod>::u32 = unsigned int]' is not usable as a constexpr function because:
     static constexpr u32 get_r()
                          ^
0_0_36420142_9048.cpp: In instantiation of 'static constexpr LazyMontgomeryModInt<mod>::u32 LazyMontgomeryModInt<mod>::reduce(const u64&) [with unsigned int mod = 998244353u; LazyMontgomeryModInt<mod>::u32 = unsigned int; LazyMontgomeryModInt<mod>::u64 = long long unsigned int]':
0_0_36420142_9048.cpp:42:88:   required from 'constexpr LazyMontgomeryModInt<mod>::LazyMontgomeryModInt(const int64_t&) [with unsigned int mod = 998244353u; int64_t = long long int]'
0_0_36420142_9048.cpp:122:50:   required from here
0_0_36420142_9048.cpp:44:97: error: body of constexpr function 'static constexpr LazyMontgomeryModInt<mod>::u32 LazyMontgomeryModInt<mod>::reduce(const u64&) [with unsigned int mod = 998244353u; LazyMontgomeryModInt<mod>::u32 = unsigned int; LazyMontgomeryModInt<mod>::u64 = long long unsigned int]' not a return-statement
     static constexpr u32 reduce(const u64& b) { return (b + u64(u32(b) * u32(-r)) * mod) >> 32; }
                                                                                                 ^
0_0_36420142_9048.cpp: In instantiation of 'constexpr LazyMontgomeryModInt<mod>::mint& LazyMontgomeryModInt<mod>::operator*=(const mint&) const [with unsigned int mod = 998244353u; LazyMontgomeryModInt<mod>::mint = LazyMontgomeryModInt<998244353u>]':
0_0_36420142_9048.cpp:72:72:   required from 'constexpr LazyMontgomeryModInt<mod>::mint LazyMontgomeryModInt<mod>::operator*(const mint&) const [with unsigned int mod = 998244353u; LazyMontgomeryModInt<mod>::mint = LazyMontgomeryModInt<998244353u>]'
0_0_36420142_9048.cpp:138:44:   required from here
0_0_36420142_9048.cpp:60:11: error: assignment of member 'LazyMontgomeryModInt<998244353u>::a' in read-only object
         a = reduce(u64(a) * b.a);
           ^
0_0_36420142_9048.cpp:61:17: error: invalid initialization of reference of type 'LazyMontgomeryModInt<998244353u>::mint& {aka LazyMontgomeryModInt<998244353u>&}' from expression of type 'const LazyMontgomeryModInt<998244353u>'
         return *this;
                 ^
0_0_36420142_9048.cpp:62:5: error: body of constexpr function 'constexpr LazyMontgomeryModInt<mod>::mint& LazyMontgomeryModInt<mod>::operator*=(const mint&) const [with unsigned int mod = 998244353u; LazyMontgomeryModInt<mod>::mint = LazyMontgomeryModInt<998244353u>]' not a return-statement
     }
     ^
0_0_36420142_9048.cpp: In instantiation of 'constexpr LazyMontgomeryModInt<mod>::mint& LazyMontgomeryModInt<mod>::operator+=(const mint&) const [with unsigned int mod = 998244353u; LazyMontgomeryModInt<mod>::mint = LazyMontgomeryModInt<998244353u>]':
0_0_36420142_9048.cpp:138:29:   required from here
0_0_36420142_9048.cpp:48:19: error: assignment of member 'LazyMontgomeryModInt<998244353u>::a' in read-only object
         if (i32(a += b.a - 2 * mod) < 0) a += 2 * mod;
                   ^
0_0_36420142_9048.cpp:48:44: error: assignment of member 'LazyMontgomeryModInt<998244353u>::a' in read-only object
         if (i32(a += b.a - 2 * mod) < 0) a += 2 * mod;
                                            ^
0_0_36420142_9048.cpp:49:17: error: invalid initialization of reference of type 'LazyMontgomeryModInt<998244353u>::mint& {aka LazyMontgomeryModInt<998244353u>&}' from expression of type 'const LazyMontgomeryModInt<998244353u>'
         return *this;
                 ^
0_0_36420142_9048.cpp:50:5: error: body of constexpr function 'constexpr LazyMontgomeryModInt<mod>::mint& LazyMontgomeryModInt<mod>::operator+=(const mint&) const [with unsigned int mod = 998244353u; LazyMontgomeryModInt<mod>::mint = LazyMontgomeryModInt<998244353u>]' not a return-statement
     }
     ^
0_0_36420142_9048.cpp: In instantiation of 'constexpr LazyMontgomeryModInt<mod>::u32 LazyMontgomeryModInt<mod>::get() const [with unsigned int mod = 998244353u; LazyMontgomeryModInt<mod>::u32 = unsigned int]':
0_0_36420142_9048.cpp:98:72:   required from 'std::ostream& operator<<(std::ostream&, const mint&)'
0_0_36420142_9048.cpp:209:35:   required from here
0_0_36420142_9048.cpp:112:5: error: body of constexpr function 'constexpr LazyMontgomeryModInt<mod>::u32 LazyMontgomeryModInt<mod>::get() const [with unsigned int mod = 998244353u; LazyMontgomeryModInt<mod>::u32 = unsigned int]' not a return-statement
     }
     ^


Hangzhou Dianzi University Online Judge 3.0
Copyright © 2005-2024 HDU ACM Team. All Rights Reserved.
Designer & Developer : Wang Rongtao LinLe GaoJie GanLu
Total 0.000000(s) query 1, Server time : 2024-11-29 07:20:40, Gzip enabled