Re: Не работает xhash
От: MaximE Великобритания  
Дата: 27.09.05 07:54
Оценка:
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 Yegorushkin
Posted via RSDN NNTP Server 1.9
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.