как вычислить некоторое зн. в шаблоне во время компиляции в C++
даныесли bitSize - константа времени компиляции, то очевидно так:
bitSize - тоесть размер массива в битах
как я могу вычислить
dwSize - размер в 4 байтовых блоках
во время компиляции
dwSize = bitSize/32;
if( bitSize%32 ){ dwSize++; }
?
bitSize+31)/32)
template <int bitCount, int dwSize=bitCount/32+bitCount%32?1:0> class Register
![](/images/graemlins/confused.gif)
![](/images/graemlins/smile.gif)
![](/images/graemlins/grin.gif)
ну скобки поставить, делов-тоясное дело
но все равно мое выражение красивее
![](/images/graemlins/grin.gif)
![](/images/graemlins/grin.gif)
![](/images/graemlins/grin.gif)
предпочитаю
template <int bitCount, int dwSize = (bitCount + 31) / 32> class Register
![](/images/graemlins/laugh.gif)
template <int bitCount> class Register
{
private:
enum{dwSize = (bitCount + 31) / 32};
....
};
(bitCount + 31) / 32А факториал вычислить слабо?
![](/images/graemlins/smile.gif)
а в чем проблема?
одна из стандартных задачек решаемая людьми дорвавшихся до C++-шаблонов
одна из стандартных задачекНу вот я ее и задал
![](/images/graemlins/smile.gif)
Оставить комментарий
kentavr
Здрастеданы
bitSize - тоесть размер массива в битах
как я могу вычислить
dwSize - размер в 4 байтовых блоках
во время компиляции
dwSize = bitSize/32;
if( bitSize%32 ){ dwSize++; }
?
конкретней
у меня есть класс Register с первоначальным видом
как я могу вычислить значение dwSize во время компиляции, чтобы в место одного параметра шаблону передавать один параметр. Тоесть передовать только bitCount.