compile-time string hash
От: Аноним  
Дата: 07.10.05 15:50
Оценка:
итак..

возможно ли следующее:

const int hash = TRATATA("GiYO!");

т.е. получить во время компиляции хэш строки?

спасибо.
Re: compile-time string hash
От: Cyberax Марс  
Дата: 07.10.05 16:11
Оценка:
wrote:

> итак..

> возможно ли следующее:
> const int hash = TRATATA("GiYO!");
> т.е. получить во время компиляции хэш строки?

Нет, так как к строкам в compile-time обращаться нельзя.

--
С уважением,
Alex Besogonov (alexy@izh.com)
Posted via RSDN NNTP Server 1.9
Sapienti sat!
Re: compile-time string hash
От: gear nuke  
Дата: 07.10.05 16:25
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>возможно ли следующее:


А>const int hash = TRATATA("GiYO!");


А>т.е. получить во время компиляции хэш строки?


Возможно, если реализовать свой препроцессор.
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
Re: compile-time string hash
От: _nn_ www.nemerleweb.com
Дата: 07.10.05 16:50
Оценка:
Здравствуйте, Аноним, Вы писали:

А>итак..


А>возможно ли следующее:


А>const int hash = TRATATA("GiYO!");


А>т.е. получить во время компиляции хэш строки?


А>спасибо.


Можно получить хеш если передавать по символьно : hash_string<'a', 'b', 'c', 'd'>::value.
Если строку передать как последовательность символов то нет проблем
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re: compile-time string hash
От: MaximE Великобритания  
Дата: 07.10.05 22:10
Оценка:
On Fri, 07 Oct 2005 19:50:55 +0400, wrote:

> возможно ли следующее:

>
> const int hash = TRATATA("GiYO!");
>
> т.е. получить во время компиляции хэш строки?

Можно, но только до препроцессинга и компиляции.

Как тебе сказали, используй для генерации (файла) хэшей отдельный скрипт.

--
Maxim Yegorushkin
Posted via RSDN NNTP Server 1.9
Re: compile-time string hash
От: Сергей Мухин Россия  
Дата: 07.10.05 22:46
Оценка: :))
Здравствуйте, Аноним, Вы писали:

А>итак..


А>возможно ли следующее:


А>const int hash = TRATATA("GiYO!");


А>т.е. получить во время компиляции хэш строки?


А>спасибо.


гм, тут не понятно, что такое очередной Аноним подразумевает под словом "хэш".

вот пример, кто скажет, что это не hash?

#define TRATATA(x) (sizeof((x)) % 17)
---
С уважением,
Сергей Мухин
Re[2]: compile-time string hash
От: srggal Украина  
Дата: 10.10.05 06:36
Оценка:
Здравствуйте, Cyberax, Вы писали:

C> wrote:


>> итак..

>> возможно ли следующее:
>> const int hash = TRATATA("GiYO!");
>> т.е. получить во время компиляции хэш строки?

C>Нет, так как к строкам в compile-time обращаться нельзя.


#include <string>
extern  std::string            s2("Is it Impossible??");

template< const std::string *str >
struct A
{
    A(  )
        :    s( *str )
    {
    }

    std::string    s;
};


void main()
{
    A< &s2 >        a;

    std::cout << A< &s2 >().s << std::endl;
}


ЗЫ Вроде как студия 7.1 компилит и без экстерна, но в моей памяти живо, что-то про указатели на объекты виз экстернал линкэйдж, хотя, возможно, это я помню из старого стандарта
... << RSDN@Home 1.1.4 stable rev. 510>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.