Когда вы задаете вопрос о том, как сделать завершенное вычитание из разряда N бит, я получил следующий ответ:
template<int bits>
int
sub_wrap( int v, int s )
{
struct Bits { signed int r: bits; } tmp;
tmp.r = v - s;
return tmp.r;
}
Это аккуратно и все, но как это реализовать компилятор? Из этот вопрос. Я понимаю, что доступ к битовым полям более или менее таков, что делать это вручную, но как насчет того, чтобы в сочетании с арифметикой, как в этом примере? Будет ли это так же быстро, как хороший ручной подход к бит-кручению?
Ответ для "gcc" в роли "компилятора" был бы замечательным, если кто-то захочет получить конкретную информацию. Я пробовал читать сгенерированную сборку, но в настоящее время это выходит за рамки меня.