Я искал способ вернуть битрейт разного размера с помощью шаблона или чего-то подобного. У меня на самом деле еще не было возможности поиграть с ним слишком много, но мне было просто любопытно, если кто-то когда-либо испортил это раньше, и ему удалось это сделать.Возвращает переменный размер бита
Цель состоит в том, чтобы не записывать 4 функции для 4 разных размеров битов (32, 17, 10, 5). Я думал, что смогу использовать какой-то шаблон для этого (просто поместив шаблон непосредственно в функцию, а не в реализацию класса или что-то в этом роде).
так это будет выглядеть примерно так:
template<something SIZE>
static bitset<SIZE> function(bitset<SIZE>);
Я бы быть в основном проходящим в BitSet размера SIZE, а затем возвращаюсь, что размер BitSet назад после того, как некоторые вещи делаются для него.
Возможно, я мог бы выполнить это с помощью вектора и бросить позже, но у меня возникает ощущение, что есть способ сделать то, что я пытаюсь сделать здесь. Если у кого-то есть мысли, пожалуйста, сообщите мне. Я намерен немного разобраться в этом немного позже и провести некоторое тестирование, поэтому я обновлю это, когда найду некоторые вещи.
Заранее спасибо.
----- Изменить -----
Я пошел вперед и реализовать решение Mark_B, и это, кажется, работает хорошо. Если у кого-то есть другая реализация, я был бы рад ее видеть, но я просто использую шаблон для его реализации.
Спасибо за быстрые ответы.
Знает ли звонящий размер во время компиляции? –
Да, вызывающий абонент знал бы этот размер во время компиляции. Он просто используется как статическая функция для внесения незначительных изменений в биты. В этом случае решение Mark_B кажется эффективным, поэтому я собираюсь пойти с этим в настоящее время. Если у кого-то еще есть другое решение, которое может работать лучше или может работать иначе, я был бы рад услышать его. – Monatrox