![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 15 Всего: 26 |
возможно ли инстанцировать шаблон строковым литералом в каком-нибудь компиляторе, или единственный выход - цеплять свой препроцессор который менял бы "Abcd" на ченить типа 'A','b','c','d' ?
|
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
Можно вместо строки использовать int как 'ABCD'. Однако это не стандартное средство.. у gcc работает, а у VS неизвестно.
|
|||
|
||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 41 Всего: 154 |
Добавлено через 2 минуты и 39 секунд в шаблон конечно-же можно передать указатель, но он должен быть известен на этапе компиляции, поэтому придется заранее создавать рад строковых констант, что в принципе то-же самое что и мой пример выше... |
|||
|
||||
| GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 15 Всего: 26 |
вобщем я хочу сделать такую штуку чтобы конструкция
hash<"qwertyui">::ret выдавала хеш "qwertyui" идея с int хороша, но только разве что с __int128 а еще лучше с __int256 |
|||
|
||||
| vinter |
|
|||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 13 Всего: 56 |
||||
|
||||
| GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 15 Всего: 26 |
vinter, и как же?
|
|||
|
||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 41 Всего: 154 |
||||
|
||||
| GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 15 Всего: 26 |
с int все ок, а вот с __int64 не получается, видимо потому что конпелятор 32разрядный и такие "большие" константы он не переваривает
|
|||
|
||||
| vinter |
|
|||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 13 Всего: 56 |
да, с классом я протупил. Можно сделать это ф-ией
Добавлено через 10 минут и 26 секунд или вот так
|
|||
|
||||
| GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 15 Всего: 26 |
vinter, надо во время компиляции
|
|||
|
||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 41 Всего: 154 |
а зачем? я usecase такого класса(ф-ии) не могу придумать |
|||
|
||||
| GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 15 Всего: 26 |
Lazin, конкретно для хешей - импорт функций по хешам их имен
для уменьшения размера бинарника, сокрытия имен импортируемых функций помогает от реверсирования Добавлено через 5 минут и 8 секунд пока это выглядит как-то так
|
|||
|
||||
| Cтpaнник |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 53 Регистрация: 12.10.2008 Где: Россия, Санкт-Пет ербург Репутация: нет Всего: нет |
1. При такой (самостоятельной) реализации хеш-функции, какова вероятность коллизии?
2. Почему бы не использовать проверенные хеш-функции типа MD5, CRC32, etc.? |
|||
|
||||
| GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 15 Всего: 26 |
Cтpaнник, у меня есть нехорошее ощущение что компилятор С++ несколько тормознут чтобы за разумное время выполнять метапрограммы содержащие сложные алгоритмы типа md5 а то и crc32
а наличие коллизий лучше проверять заранее, отдельной утилитой |
|||
|
||||
| GoldFinch |
|
||||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 15 Всего: 26 |
версия с отдельными символами, и правильным порядком подсчета хеша - от 1го символа к последнему
Добавлено через 5 минут и 47 секунд версия без тринарного оператора ?:
как лучше, с тринарным оператором условия, или без него? |
||||
|
|||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |