Можно ли использовать макросы для вставки оператора? (Подобно лексем склеивание, но с фактическим операторомC Макросы - вставка оператора?
Пример:
#define DO(a, operator, b) a ##operator b
DO(1, +, 3); // 4
DO(4, <<, 1); // 8
Примечание - это очень упрощенный пример моего фактического использования случай, что я работаю над алгоритмом с большим количеством бит.. операции сдвига происходит, и я хотел бы быть в состоянии передать, какой оператор сдвига мне нужно макрос (>>
или <<
), чтобы держать вещи немного проще.
Ошибка компилятора: ошибка: вставка «4» и «<<» не дает действительного токена предварительной обработки DO (4, <<, 1); ' –
Я надеюсь кого-то может по крайней мере указать мне в сторону какого-то синтаксиса, который может достичь этого результата :) –
Вы пробовали '#define DO (a, operator, b) оператор b'? – Cornstalks