Битовая операция в C++ (n < max_n, тогда n; n == max_n, тогда 0;)
Например так (взял тип фиксированной ширины для простоты):int32_t cap(int32_t n, int32_t max_n)
{
    return n & ((n - max_n) >> 31);
}
один вопрос... зачем? это решается тернальным оператором, и никаких извращений... или же функции вроде max/min.