const な変数やオブジェクトに対して、const が付いていないメンバ関数を呼ぶと出ます。
出るコード
#include <vector>
void show(const std::vector<int>& v) {
v.push_back(4); // const参照なのに変更しようとした
}
int main() { std::vector<int> v = {1, 2}; show(v); }
エラーメッセージ
error: passing 'const std::vector<int>' as 'this' argument discards qualifiers [-fpermissive]
直し方
引数を const にした関数の中では要素を変更できません。変更が必要なら引数から const を外すか、コピーを作ってから変更します。