Edit2: Ребята, извините, но я нахожу, что это раздражает, что ответ отмечен как дубликат, не проверяя, действительно ли он решает проблему. Предлагаемый ответ SO не соответствует заявленной проблеме. Это фиксированное число переменных по сравнению с переменным числом переменных + переменная комбинация диапазонов целых чисел и целочисленных значений. Если вы все еще думаете в правильном направлении, пожалуйста, предоставьте действительное решение моей заявленной проблемы или просто не отмечайте его просто как дубликат, если вы не можете этого сделать.Помощник битмаски: создайте битмаску со списком списка int и int-range в C++
Я пытаюсь найти самый элегантный способ определения битовой маски. Эта битовая маска является целым числом и определяет видимость объектов на карте (32 уровня, поэтому бит 0..31 определяет видимость на каждом из 32 уровней).
Что я ideall хотел бы иметь:
INT visibilityMask = CreateVisibilityMask (0..12, 16, 22);
Таким образом, вышеизложенное будет представлять собой вариационную функцию, которая создает битовую маску, в которой необходимо перегрузить, чтобы создать битовую маску, которая затем будет OR'ed с другими значениями.
Я думаю, что это действительно тяжело. Но разве это невозможно?
Редактировать: Извините, ребята, но если вы считаете, что этот ответ является дубликатом предложенного вами ответа, пожалуйста, создайте пример того, как другой можно использовать в соответствии с моими потребностями. Предоставленный ответ не позволяет сочетать диапазон и значения одного int в переменной - если вы считаете, что это легко разрешить, предоставьте.
Примечание: Первоначальный вопрос касался перегрузки «..», что невозможно. Спасибо за разъяснение по этому поводу.
№ '..' не является оператором. –
Asnwer в основном такой же, как для [оператора двоеточия] (http://stackoverflow.com/questions/16339207/implementing-matlabs-colon-operator-in-c-expression-templates-class/16339594#16339594) - на самом деле * вопрос * в основном такой же. –
Как насчет 'class range {public: range (int a, int b); } '? –