このプログラムのエラーがわからなくて困っています

hash_set<string> h;
string s = "Hoge";

h.insert(s);

stringじゃないものを指定した場合にはinsertではエラーが出ないんですが、stringだと出てしまいます。
コンパイラはg++を使っています。
原因は何でしょうか?また、対応策はあるのでしょうか?わかる方がお願いします。