MaIron wrote:
> Пытаюсь собрать кроссплатфоерменное приложение Lunux/Windows под VS2003
> Вроде все файлы есть, константы определил, что бы код собирался.
> Ошибок в самом коде нет кроме одной:
>
> В файле xhash:
> При попытке сборки выдаёт сильно непонятную ошибку
> \Microsoft Visual Studio .NET 2003\Vc7\include\xhash(164): error C2039: 'bucket_size' : is not a member of 'StringHash'
Странно, что кроссплатформенное приложение включает MSVC-specific хедер.
> Ссылаясь на неизвестный тип данных в заголовочном файле xhash:
>
> > public:
> typedef _Hash<_Traits> _Myt;
> typedef typename _Traits::key_type key_type;
> typedef typename _Traits::key_compare key_compare;
> typedef typename _Traits::value_compare value_compare;
> enum
> { // hoist constants from key_compare
> bucket_size = key_compare::bucket_size, //--Ошибка
> min_buckets = key_compare::min_buckets,
> _Multi = _Traits::_Multi};
> typedef _STD list<typename _Traits::value_type,
> typename _Traits::allocator_type> _Mylist;
>
>
> Я почитал по форумам и докам, вроде вообще эта часть кода недолжна под виндой затрагиваться.
> И я вот незнаю может ещё где то константу надо описать, что бы компилятор уходил на нужную ветку.
Похоже, что нужно определить константы bucket_size и min_buckets в функторе key_compare, посмотри как это сделано для off-the-shell функторов.
--
Maxim YegorushkinPosted via RSDN NNTP Server 1.9