modintのコンパイルエラー
拾ってきたmodintをコンパイルオプション付きでコンパイルすると,エラーを吐く.
main.cc: In constructor ‘mint::mint(long long int)’: main.cc:12:20: warning: declaration of ‘x’ shadows a member of ‘mint’ [-Wshadow] 12 | mint(long long x=0) : x((x%mod+mod)%mod) {}
xという名前の変数が被ってますよ,という警告. 私が拾ってきたmodintはこんな感じになっていたので,
class mint { long long x; public: mint(long long x=0) : x((x%mod+mod)%mod) {}
コンストラクタを一部修正.これで変数xがなくなる.
mint(long long a=0) : x((a%mod+mod)%mod) {}