C++相談室 part56at TECHC++相談室 part56 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト100:名無しさん@そうだ選挙に行こう 07/07/29 18:48:13 shared_ptrぐらいならビルドする必要ないだろ。 インクルードパスを通しておくだけ。 101:デフォルトの名無しさん 07/07/29 18:57:05 このプログラムのエラーがわからなくて困っています hash_set<string> h; string s = "Hoge"; h.insert(s); stringじゃないものを指定した場合にはinsertではエラーが出ないんですが、stringだと出てしまいます。 コンパイラはg++を使っています。 原因は何でしょうか?また、対応策はあるのでしょうか?わかる方がお願いします。 102:名無しさん@そうだ選挙に行こう 07/07/29 19:20:21 >>101 エラーメッセージは? 103:名無しさん@そうだ選挙に行こう 07/07/29 19:31:22 boostってライブラリとソース落としてこないと使えないでしょ? 104:名無しさん@そうだ選挙に行こう 07/07/29 19:39:55 一部を除いてヘッダをインクルードするだけで使える 105:名無しさん@そうだ選挙に行こう 07/07/29 19:41:45 >>101 >原因は何でしょうか? ext/hash_fun.hに template <> struct hash<std::string> が定義されてないから >対応策はあるのでしょうか? たぶんこんなんで良いと思う #include <string> #include <ext/hash_set> struct string_hash { size_t operator () (const std::string &p) const { return __gnu_cxx::hash <const char *> () (p.c_str ()); } }; int main () { __gnu_cxx::hash_set <std::string, string_hash> h; std::string s = "Hoge"; h.insert(s); } 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch