Когда я пытаюсь этот код, он выводит данные 0 вместо dseried результата, который 35FFS не возвращает правильный результат, если ее аргумент типа UInt64
uint64_t er = (uint64_t)1 << 34;
cout << ffs(er);
Если вместо 34 я использую некоторые юдоль меньше чем 32, он работает отлично, поэтому я предполагаю, что мой компилятор не использует правильные ffs, или это то, что ffs не поддерживает вообще 64-битные типы?
Что делать в этом случае? Я хочу использовать ffs, так как я хочу, чтобы мой код был самым быстрым, и я слышал, что ffs имеет существенную реализацию.
я на Ubuntu с помощью G ++ и процессор Xeon