In file included from /usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../../include/c++/4.5.1/unordered_map:45:0,
from prog.cpp:1:
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../../include/c++/4.5.1/bits/hashtable.h: In instantiation of 'std::_Hashtable<Foo, std::pair<const Foo, Bar>, TestAllocator<std::pair<const Foo, Bar> >, std::_Select1st<std::pair<const Foo, Bar> >, TrivialEqual, TrivialHash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, false, false, true>':
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../../include/c++/4.5.1/bits/unordered_map.h:49:5: instantiated from 'std::__unordered_map<Foo, Bar, TrivialHash, TrivialEqual, TestAllocator<std::pair<const Foo, Bar> >, false>'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../../include/c++/4.5.1/bits/unordered_map.h:222:5: instantiated from 'std::unordered_map<Foo, Bar, TrivialHash, TrivialEqual, TestAllocator<std::pair<const Foo, Bar> > >'
prog.cpp:69:19: instantiated from here
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../../include/c++/4.5.1/bits/hashtable.h:168:57: error: no class template named 'rebind' in 'class TestAllocator<std::pair<const Foo, Bar> >'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../../include/c++/4.5.1/bits/hashtable.h:170:57: error: no class template named 'rebind' in 'class TestAllocator<std::pair<const Foo, Bar> >'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../../include/c++/4.5.1/bits/hashtable.h:173:57: error: no class template named 'rebind' in 'class TestAllocator<std::pair<const Foo, Bar> >'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../../include/c++/4.5.1/bits/hashtable.h: In constructor 'std::_Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, __cache_hash_code, __constant_iterators, __unique_keys>::_Hashtable(std::_Hashtable::size_type, const _H1&, const _H2&, const _Hash&, const _Equal&, const _ExtractKey&, const allocator_type&) [with _Key = Foo, _Value = std::pair<const Foo, Bar>, _Allocator = TestAllocator<std::pair<const Foo, Bar> >, _ExtractKey = std::_Select1st<std::pair<const Foo, Bar> >, _Equal = TrivialEqual, _H1 = TrivialHash, _H2 = std::__detail::_Mod_range_hashing, _Hash = std::__detail::_Default_ranged_hash, _RehashPolicy = std::__detail::_Prime_rehash_policy, bool __cache_hash_code = false, bool __constant_iterators = false, bool __unique_keys = true, std::_Hashtable::size_type = unsigned int, allocator_type = TestAllocator<std::pair<const Foo, Bar> >]':
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../../include/c++/4.5.1/bits/unordered_map.h:71:66: instantiated from 'std::__unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc, __cache_hash_code>::__unordered_map(std::__unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc, __cache_hash_code>::size_type, std::__unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc, __cache_hash_code>::hasher&, std::__unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc, __cache_hash_code>::key_equal&, std::__unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc, __cache_hash_code>::allocator_type&) [with _Key = Foo, _Tp = Bar, _Hash = TrivialHash, _Pred = TrivialEqual, _Alloc = TestAllocator<std::pair<const Foo, Bar> >, bool __cache_hash_code = false, std::__unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc, __cache_hash_code>::size_type = unsigned int, std::__unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc, __cache_hash_code>::hasher = TrivialHash, std::__unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc, __cache_hash_code>::key_equal = TrivialEqual, std::__unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc, __cache_hash_code>::allocator_type = TestAllocator<std::pair<const Foo, Bar> >]'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../../include/c++/4.5.1/bits/unordered_map.h:237:36: instantiated from 'std::unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::unordered_map(std::unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::size_type, std::unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::hasher&, std::unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::key_equal&, std::unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::allocator_type&) [with _Key = Foo, _Tp = Bar, _Hash = TrivialHash, _Pred = TrivialEqual, _Alloc = TestAllocator<std::pair<const Foo, Bar> >, std::unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::size_type = unsigned int, std::unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::hasher = TrivialHash, std::unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::key_equal = TrivialEqual, std::unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::allocator_type = TestAllocator<std::pair<const Foo, Bar> >]'
prog.cpp:69:19: instantiated from here
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../../include/c++/4.5.1/bits/hashtable.h:555:24: error: using invalid field 'std::_Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, __cache_hash_code, __constant_iterators, __unique_keys>::_M_node_allocator'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../../include/c++/4.5.1/bits/hashtable.h: In member function 'void std::_Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, __cache_hash_code, __constant_iterators, __unique_keys>::_M_deallocate_node(std::_Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, __cache_hash_code, __constant_iterators, __unique_keys>::_Node*) [with _Key = Foo, _Value = std::pair<const Foo, Bar>, _Allocator = TestAllocator<std::pair<const Foo, Bar> >, _ExtractKey = std::_Select1st<std::pair<const Foo, Bar> >, _Equal = TrivialEqual, _H1 = TrivialHash, _H2 = std::__detail::_Mod_range_hashing, _Hash = std::__detail::_Default_ranged_hash, _RehashPolicy = std::__detail::_Prime_rehash_policy, bool __cache_hash_code = false, bool __constant_iterators = false, bool __unique_keys = true, std::_Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, __cache_hash_code, __constant_iterators, __unique_keys>::_Node = std::__detail::_Hash_node<std::pair<const Foo, Bar>, false>]':
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../../include/c++/4.5.1/bits/hashtable.h:497:8: instantiated from 'void std::_Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, __cache_hash_code, __constant_iterators, __unique_keys>::_M_deallocate_nodes(std::_Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, __cache_hash_code, __constant_iterators, __unique_keys>::_Node**, std::_Hashtable::size_type) [with _Key = Foo, _Value = std::pair<const Foo, Bar>, _Allocator = TestAllocator<std::pair<const Foo, Bar> >, _ExtractKey = std::_Select1st<std::pair<const Foo, Bar> >, _Equal = TrivialEqual, _H1 = TrivialHash, _H2 = std::__detail::_Mod_range_hashing, _Hash = std::__detail::_Default_ranged_hash, _RehashPolicy = std::__detail::_Prime_rehash_policy, bool __cache_hash_code = false, bool __constant_iterators = false, bool __unique_keys = true, std::_Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, __cache_hash_code, __constant_iterators, __unique_keys>::_Node = std::__detail::_Hash_node<std::pair<const Foo, Bar>, false>, std::_Hashtable::size_type = unsigned int]'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../../include/c++/4.5.1/bits/hashtable.h:1137:7: instantiated from 'void std::_Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, __cache_hash_code, __constant_iterators, __unique_keys>::clear() [with _Key = Foo, _Value = std::pair<const Foo, Bar>, _Allocator = TestAllocator<std::pair<const Foo, Bar> >, _ExtractKey = std::_Select1st<std::pair<const Foo, Bar> >, _Equal = TrivialEqual, _H1 = TrivialHash, _H2 = std::__detail::_Mod_range_hashing, _Hash = std::__detail::_Default_ranged_hash, _RehashPolicy = std::__detail::_Prime_rehash_policy, bool __cache_hash_code = false, bool __constant_iterators = false, bool __unique_keys = true]'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../../include/c++/4.5.1/bits/hashtable.h:689:7: instantiated from 'std::_Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, __cache_hash_code, __constant_iterators, __unique_keys>::~_Hashtable() [with _Key = Foo, _Value = std::pair<const Foo, Bar>, _Allocator = TestAllocator<std::pair<const Foo, Bar> >, _ExtractKey = std::_Select1st<std::pair<const Foo, Bar> >, _Equal = TrivialEqual, _H1 = TrivialHash, _H2 = std::__detail::_Mod_range_hashing, _Hash = std::__detail::_Default_ranged_hash, _RehashPolicy = std::__detail::_Prime_rehash_policy, bool __cache_hash_code = false, bool __constant_iterators = false, bool __unique_keys = true]'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../../include/c++/4.5.1/bits/unordered_map.h:49:5: instantiated from here
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../../include/c++/4.5.1/bits/hashtable.h:477:7: error: using invalid field 'std::_Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, __cache_hash_code, __constant_iterators, __unique_keys>::_M_node_allocator'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../../include/c++/4.5.1/bits/hashtable.h:478:7: error: using invalid field 'std::_Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, __cache_hash_code, __constant_iterators, __unique_keys>::_M_node_allocator'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../../include/c++/4.5.1/bits/hashtable.h: In member function 'std::_Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, __cache_hash_code, __constant_iterators, __unique_keys>::_Node* std::_Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, __cache_hash_code, __constant_iterators, __unique_keys>::_M_allocate_node(const value_type&) [with _Key = Foo, _Value = std::pair<const Foo, Bar>, _Allocator = TestAllocator<std::pair<const Foo, Bar> >, _ExtractKey = std::_Select1st<std::pair<const Foo, Bar> >, _Equal = TrivialEqual, _H1 = TrivialHash, _H2 = std::__detail::_Mod_range_hashing, _Hash = std::__detail::_Default_ranged_hash, _RehashPolicy = std::__detail::_Prime_rehash_policy, bool __cache_hash_code = false, bool __constant_iterators = false, bool __unique_keys = true, std::_Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, __cache_hash_code, __constant_iterators, __unique_keys>::_Node = std::__detail::_Hash_node<std::pair<const Foo, Bar>, false>, value_type = std::pair<const Foo, Bar>]':
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../../include/c++/4.5.1/bits/hashtable.h:903:47: instantiated from 'std::_Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, __cache_hash_code, __constant_iterators, __unique_keys>::iterator std::_Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, __cache_hash_code, __constant_iterators, __unique_keys>::_M_insert_bucket(const value_type&, std::_Hashtable::size_type, typename std::_Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, __cache_hash_code, __constant_iterators, __unique_keys>::_Hash_code_type) [with _Key = Foo, _Value = std::pair<const Foo, Bar>, _Allocator = TestAllocator<std::pair<const Foo, Bar> >, _ExtractKey = std::_Select1st<std::pair<const Foo, Bar> >, _Equal = TrivialEqual, _H1 = TrivialHash, _H2 = std::__detail::_Mod_range_hashing, _Hash = std::__detail::_Default_ranged_hash, _RehashPolicy = std::__detail::_Prime_rehash_policy, bool __cache_hash_code = false, bool __constant_iterators = false, bool __unique_keys = true, std::_Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, __cache_hash_code, __constant_iterators, __unique_keys>::iterator = std::__detail::_Hashtable_iterator<std::pair<const Foo, Bar>, false, false>, value_type = std::pair<const Foo, Bar>, std::_Hashtable::size_type = unsigned int, typename std::_Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, __cache_hash_code, __constant_iterators, __unique_keys>::_Hash_code_type = unsigned int]'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../../include/c++/4.5.1/bits/hashtable.h:946:69: instantiated from 'std::pair<std::__detail::_Hashtable_iterator<_Value, __constant_iterators, __cache_hash_code>, bool> std::_Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, __cache_hash_code, __constant_iterators, __unique_keys>::_M_insert(const value_type&, std::true_type) [with _Key = Foo, _Value = std::pair<const Foo, Bar>, _Allocator = TestAllocator<std::pair<const Foo, Bar> >, _ExtractKey = std::_Select1st<std::pair<const Foo, Bar> >, _Equal = TrivialEqual, _H1 = TrivialHash, _H2 = std::__detail::_Mod_range_hashing, _Hash = std::__detail::_Default_ranged_hash, _RehashPolicy = std::__detail::_Prime_rehash_policy, bool __cache_hash_code = false, bool __constant_iterators = false, bool __unique_keys = true, value_type = std::pair<const Foo, Bar>, std::true_type = std::integral_constant<bool, true>]'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../../include/c++/4.5.1/bits/hashtable.h:404:21: instantiated from 'std::_Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, __cache_hash_code, __constant_iterators, __unique_keys>::_Insert_Return_Type std::_Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, __cache_hash_code, __constant_iterators, __unique_keys>::insert(const value_type&) [with _Key = Foo, _Value = std::pair<const Foo, Bar>, _Allocator = TestAllocator<std::pair<const Foo, Bar> >, _ExtractKey = std::_Select1st<std::pair<const Foo, Bar> >, _Equal = TrivialEqual, _H1 = TrivialHash, _H2 = std::__detail::_Mod_range_hashing, _Hash = std::__detail::_Default_ranged_hash, _RehashPolicy = std::__detail::_Prime_rehash_policy, bool __cache_hash_code = false, bool __constant_iterators = false, bool __unique_keys = true, std::_Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, __cache_hash_code, __constant_iterators, __unique_keys>::_Insert_Return_Type = std::pair<std::__detail::_Hashtable_iterator<std::pair<const Foo, Bar>, false, false>, bool>, value_type = std::pair<const Foo, Bar>]'
prog.cpp:70:53: instantiated from here
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../../include/c++/4.5.1/bits/hashtable.h:454:48: error: using invalid field 'std::_Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, __cache_hash_code, __constant_iterators, __unique_keys>::_M_node_allocator'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../../include/c++/4.5.1/bits/hashtable.h:457:4: error: using invalid field 'std::_Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, __cache_hash_code, __constant_iterators, __unique_keys>::_M_node_allocator'
/usr/lib/gcc/i686-pc-linux-gnu/4.5.1/../../../../include/c++/4.5.1/bits/hashtable.h:463:4: error: using invalid field 'std::_Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, _H1, _H2, _Hash, _RehashPolicy, __cache_hash_code, __constant_iterators, __unique_keys>::_M_node_allocator'