This looks very interesting but is it supposed to compile on gcc? With gcc 4.4.1 I get the following errors:
In file included from sti/smap.h:33,
from test.cpp:3:
./sti/stree.h:474: error: declaration of ‘typedef struct sti::implementation::KeyWrapper<Key, gist_traits, typename Allocator::rebind<Key>::other, key_policy> sti::implementation::stree<Key, ValueType, Allocator, comparator, key_extracto
r, BN, key_policy, value_policy, gist_traits>::KeyWrapper’
./sti/stree.h:303: error: changes meaning of ‘KeyWrapper’ from ‘struct sti::implementation::KeyWrapper<Key, gist_traits, typename Allocator::rebind<Key>::other, key_policy>’
./sti/stree.h:475: error: declaration of ‘typedef struct sti::implementation::KeyWithGist<Key, gist_traits, key_policy> sti::implementation::stree<Key, ValueType, Allocator, comparator, key_extractor, BN, key_policy, value_policy, gist_t
raits>::KeyWithGist’
./sti/stree.h:193: error: changes meaning of ‘KeyWithGist’ from ‘struct sti::implementation::KeyWithGist<Key, gist_traits, key_policy>’
./sti/stree.h:1305: error: declaration of ‘typedef class sti::implementation::stree<Key, ValueType, Allocator, comparator, key_extractor, BN, key_policy, value_policy, gist_traits>::iter<ValueType> sti::implementation::stree<Key, ValueTy
pe, Allocator, comparator, key_extractor, BN, key_policy, value_policy, gist_traits>::iterator’
./sti/stree.h:729: error: conflicts with previous declaration ‘typedef class sti::implementation::stree<Key, ValueType, Allocator, comparator, key_extractor, BN, key_policy, value_policy, gist_traits>::iter<ValueType> sti::implementation
::stree<Key, ValueType, Allocator, comparator, key_extractor, BN, key_policy, value_policy, gist_traits>::iterator’
./sti/stree.h:1306: error: declaration of ‘typedef class sti::implementation::stree<Key, ValueType, Allocator, comparator, key_extractor, BN, key_policy, value_policy, gist_traits>::iter<const ValueType> sti::implementation::stree<Key, V
alueType, Allocator, comparator, key_extractor, BN, key_policy, value_policy, gist_traits>::const_iterator’
./sti/stree.h:730: error: conflicts with previous declaration ‘typedef class sti::implementation::stree<Key, ValueType, Allocator, comparator, key_extractor, BN, key_policy, value_policy, gist_traits>::iter<const ValueType> sti::implemen
tation::stree<Key, ValueType, Allocator, comparator, key_extractor, BN, key_policy, value_policy, gist_traits>::const_iterator’
./sti/stree.h:1307: error: declaration of ‘typedef class boost::reverse_iterator<sti::implementation::stree<Key, ValueType, Allocator, comparator, key_extractor, BN, key_policy, value_policy, gist_traits>::iter<ValueType> > sti::implemen
tation::stree<Key, ValueType, Allocator, comparator, key_extractor, BN, key_policy, value_policy, gist_traits>::reverse_iterator’
./sti/stree.h:731: error: conflicts with previous declaration ‘typedef class boost::reverse_iterator<sti::implementation::stree<Key, ValueType, Allocator, comparator, key_extractor, BN, key_policy, value_policy, gist_traits>::iter<ValueT
ype> > sti::implementation::stree<Key, ValueType, Allocator, comparator, key_extractor, BN, key_policy, value_policy, gist_traits>::reverse_iterator’
./sti/stree.h:1308: error: declaration of ‘typedef class boost::reverse_iterator<sti::implementation::stree<Key, ValueType, Allocator, comparator, key_extractor, BN, key_policy, value_policy, gist_traits>::iter<const ValueType> > sti::im
plementation::stree<Key, ValueType, Allocator, comparator, key_extractor, BN, key_policy, value_policy, gist_traits>::const_reverse_iterator’
./sti/stree.h:732: error: conflicts with previous declaration ‘typedef class boost::reverse_iterator<sti::implementation::stree<Key, ValueType, Allocator, comparator, key_extractor, BN, key_policy, value_policy, gist_traits>::iter<const
ValueType> > sti::implementation::stree<Key, ValueType, Allocator, comparator, key_extractor, BN, key_policy, value_policy, gist_traits>::const_reverse_iterator’
./sti/stree.h: In member function ‘void sti::implementation::stree<Key, ValueType, Allocator, comparator, key_extractor, BN, key_policy, value_policy, gist_traits>::moveitems(sti::implementation::stree<Key, ValueType, Allocator, comparat
or, key_extractor, BN, key_policy, value_policy, gist_traits>::InnerNode*, const sti::implementation::stree<Key, ValueType, Allocator, comparator, key_extractor, BN, key_policy, value_policy, gist_traits>::InnerNode*, size_t)’:
./sti/stree.h:504: error: ‘::memmove’ has not been declared
./sti/stree.h: In member function ‘void sti::implementation::stree<Key, ValueType, Allocator, comparator, key_extractor, BN, key_policy, value_policy, gist_traits>::moveitems(sti::implementation::stree<Key, ValueType, Allocator, comparat
or, key_extractor, BN, key_policy, value_policy, gist_traits>::LeafNode*, const sti::implementation::stree<Key, ValueType, Allocator, comparator, key_extractor, BN, key_policy, value_policy, gist_traits>::LeafNode*, size_t)’:
./sti/stree.h:509: error: ‘::memmove’ has not been declared
./sti/stree.h: In member function ‘V& sti::implementation::stree<Key, ValueType, Allocator, comparator, key_extractor, BN, key_policy, value_policy, gist_traits>::iter<V>::dereference() const’:
./sti/stree.h:665: error: ‘invalid_argument’ is not a member of ‘std’
./sti/stree.h: In member function ‘void sti::implementation::stree<Key, ValueType, Allocator, comparator, key_extractor, BN, key_policy, value_policy, gist_traits>::check(B) const’:
./sti/stree.h:804: error: ‘runtime_error’ is not a member of ‘std’
In file included from test.cpp:3:
sti/smap.h: In member function ‘Type& sti::implementation::smap_base<Key, Type, Traits, Allocator, BN, key_policy, value_policy, gist_traits>::at(const Key&)’:
sti/smap.h:247: error: ‘out_of_range’ is not a member of ‘std’
sti/smap.h: In member function ‘const Type& sti::implementation::smap_base<Key, Type, Traits, Allocator, BN, key_policy, value_policy, gist_traits>::at(const Key&) const’:
sti/smap.h:254: error: ‘out_of_range’ is not a member of ‘std’
|