Нет, это (очевидно) не чистое решение.Ваш исходный код был простым, не зацикливался и не включал «секретные» макросы специального случая, которые добавляют в язык странные конструкции.
Под «странной конструкцией» я подразумевал START_BITMASK_SWITCH()
/ END_BITMASK_SWITCH
макросы, которые:
- Добавить цикл без использования каких-либо стандартных ключевых слов, чтобы даже намекнуть, что цикл происходит
- Clobber имен в текущей области more илименее тихо
- Включите ложную точку с запятой
Ваше решение не принесет никакой пользы, все, что он делает, это добавляет раздувание и накладные расходы (как с точки зрения размера кода, так и сложности, ипроизводительность во время выполнения), просто чтобы по какой-то причине захотеть использовать switch
для выполнения чего-то, что не очень подходит для этого.
Очевидно, это очень субъективно, но вы сделалиспрашивайте.