| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > частичная специализация для определенного набора - |
| Автор: boostcoder 7.8.2011, 11:08 | ||||
есть такой шаблон:
что нужно сделать, чтоб постоянно не перечислять некоторые параметры? т.е. чтоб можно было использовать как-то так:
спасибо. |
| Автор: asmdzen 7.8.2011, 12:24 | ||
хотя я не уверен что оно. http://drdobbs.com/architecture-and-design/184403850 |
| Автор: boostcoder 7.8.2011, 15:17 |
| asmdzen, такой способ я знаю. но дефолтными нужно сделать параметры слева. |
| Автор: boostcoder 8.8.2011, 19:48 |
| наверное сабж невозможен... есть другая идея: вместо bool`ов использовать одну целочисленную переменную и шаблоны-предикаты которые будут проверять состояние бит в переменной. но тут вопрос: в compile-time можно использовать операции над битами? |
| Автор: boostcoder 8.8.2011, 20:22 |
| а еще, с операциями над битами я не дружу |
| Автор: azesmcar 8.8.2011, 21:02 | ||||||||||||||
| boostcoder запросто. группируем флаги в какую-нибудь группу
дальше определяем группы
реальную структуру type прячем под другим именем, например type_ и меняем три шаблонных переменных заменяем на группу
далее специализируем type_
далее осталось перенаправить тип type<bool b1, bool b2, bool b3, unsigned e1, unsigned e2> на type_<params_pack<b1, b2, b3>, e1, e2>. Тут небольшая загвоздка, шаблонный typedef пока вроде не поддерживается
потому придется как-то так
В итоге получается что-то в этом роде
конечно, если это группа boolean типов, то лучше использовать битовые операции. http://forum.vingrad.ru/index.php?showtopic=334948&view=findpost&p=2381904 |
| Автор: boostcoder 8.8.2011, 21:15 |
| azesmcar, спасибо огромное. буду пробовать таким способом зы у меня есть два момента(это которые я осознаю) которые мне никак в голову не лезут: 1. регекспы. 2. операции над битами. сколько я не пытался.. |
| Автор: azesmcar 8.8.2011, 21:17 |
будет время, попробую описать более подробно. |
| Автор: boostcoder 8.8.2011, 21:53 |
а тут обязательно enum заменять на unsigned? |
| Автор: azesmcar 9.8.2011, 06:46 |
нет, просто мой компилятор этого не поддерживал. |