0_0_37830841_10894.cpp: In member function 'constexpr modint<m>& modint<m>::operator++() const':
0_0_37830841_10894.cpp:62:45: error: increment of read-only location '((const modint<m>*)this)->modint<m>::x'
constexpr modint&operator++()noexcept{if(++x==m)x=0;return *this;}
^
0_0_37830841_10894.cpp: In member function 'constexpr modint<m>& modint<m>::operator--() const':
0_0_37830841_10894.cpp:63:54: error: decrement of read-only location '((const modint<m>*)this)->modint<m>::x'
constexpr modint&operator--()noexcept{if(x==0)x=m;--x;return*this;}
^
0_0_37830841_10894.cpp: In instantiation of 'constexpr modint<m>& modint<m>::operator*=(const modint<m>&) const [with int m = 1000000007]':
0_0_37830841_10894.cpp:91:83: required from 'constexpr modint<1000000007> operator*(const modint<1000000007>&, const modint<1000000007>&)'
0_0_37830841_10894.cpp:103:89: required from here
0_0_37830841_10894.cpp:68:55: error: assignment of member 'modint<1000000007>::x' in read-only object
constexpr modint&operator*=(const modint&a)noexcept{x=(unsigned long long)x*a.x%m;return *this;}
^
0_0_37830841_10894.cpp:68:92: error: invalid initialization of reference of type 'modint<1000000007>&' from expression of type 'const modint<1000000007>'
constexpr modint&operator*=(const modint&a)noexcept{x=(unsigned long long)x*a.x%m;return *this;}
^
0_0_37830841_10894.cpp:68:97: error: body of constexpr function 'constexpr modint<m>& modint<m>::operator*=(const modint<m>&) const [with int m = 1000000007]' not a return-statement
constexpr modint&operator*=(const modint&a)noexcept{x=(unsigned long long)x*a.x%m;return *this;}
^
0_0_37830841_10894.cpp: In instantiation of 'constexpr modint<m> modint<m>::inv() const [with int m = 1000000007]':
0_0_37830841_10894.cpp:69:65: required from 'constexpr modint<m>& modint<m>::operator/=(const modint<m>&) const [with int m = 1000000007]'
0_0_37830841_10894.cpp:92:83: required from 'constexpr modint<1000000007> operator/(const modint<1000000007>&, const modint<1000000007>&)'
0_0_37830841_10894.cpp:104:50: required from here
0_0_37830841_10894.cpp:88:2: error: body of constexpr function 'constexpr modint<m> modint<m>::inv() const [with int m = 1000000007]' not a return-statement
}
^
0_0_37830841_10894.cpp: In instantiation of 'constexpr modint<m>& modint<m>::operator+=(const modint<m>&) const [with int m = 1000000007]':
0_0_37830841_10894.cpp:128:29: required from here
0_0_37830841_10894.cpp:66:55: error: assignment of member 'modint<1000000007>::x' in read-only object
constexpr modint&operator+=(const modint&a)noexcept{x+=a.x;if(x>=m)x-=m;return *this;}
^
0_0_37830841_10894.cpp:66:70: error: assignment of member 'modint<1000000007>::x' in read-only object
constexpr modint&operator+=(const modint&a)noexcept{x+=a.x;if(x>=m)x-=m;return *this;}
^
0_0_37830841_10894.cpp:66:82: error: invalid initialization of reference of type 'modint<1000000007>&' from expression of type 'const modint<1000000007>'
constexpr modint&operator+=(const modint&a)noexcept{x+=a.x;if(x>=m)x-=m;return *this;}
^
0_0_37830841_10894.cpp:66:87: error: body of constexpr function 'constexpr modint<m>& modint<m>::operator+=(const modint<m>&) const [with int m = 1000000007]' not a return-statement
constexpr modint&operator+=(const modint&a)noexcept{x+=a.x;if(x>=m)x-=m;return *this;}
^
0_0_37830841_10894.cpp: In instantiation of 'constexpr modint<m>& modint<m>::operator-=(const modint<m>&) const [with int m = 1000000007]':
0_0_37830841_10894.cpp:90:83: required from 'constexpr modint<1000000007> operator-(const modint<1000000007>&, const modint<1000000007>&)'
0_0_37830841_10894.cpp:174:39: required from here
0_0_37830841_10894.cpp:67:64: error: assignment of member 'modint<1000000007>::x' in read-only object
constexpr modint&operator-=(const modint&a)noexcept{if(x<a.x)x+=m;x-=a.x;return *this;}
^
0_0_37830841_10894.cpp:67:69: error: assignment of member 'modint<1000000007>::x' in read-only object
constexpr modint&operator-=(const modint&a)noexcept{if(x<a.x)x+=m;x-=a.x;return *this;}
^
0_0_37830841_10894.cpp:67:83: error: invalid initialization of reference of type 'modint<1000000007>&' from expression of type 'const modint<1000000007>'
constexpr modint&operator-=(const modint&a)noexcept{if(x<a.x)x+=m;x-=a.x;return *this;}
^
0_0_37830841_10894.cpp:67:88: error: body of constexpr function 'constexpr modint<m>& modint<m>::operator-=(const modint<m>&) const [with int m = 1000000007]' not a return-statement
constexpr modint&operator-=(const modint&a)noexcept{if(x<a.x)x+=m;x-=a.x;return *this;}
^
|