Zellily, дык в вызове передавать будете. По сути функция: GetValueByType(FooEnum type). Внутри нее что то вроде
return myConstsArray[(int)type];
В myConstArray храните нужные вам значения последовательно, как и в енаме. Нужно переопределить значение - или меняете содержимое массива, или можно через константые массивы - весь сразу.
Использование:
GetValueByType(FooEnum::MyMegaEnumElement);
вместо того что щас у вас (чтобы понятно было)
value = FooEnum::MyMegaEnumElement
Zellily, сделайте одну функцию, параметр у нее - один енам, которая исходя из параметра вернет нужное в данном рантайме значение. А значение брать из массива констант, как предложил выше res2001. Такой себе map руками. И другим программистам норм будет - они будут видеть enum, и костылей почти минмиум.
Zellily, могу ошибиться, но это же будут указатели на разные типы данных. Вы их приводить друг к другу что ли будете? Ну и честно - так себе метод. Потому что вы тогда зависите от енамов, прописаных в коде. И как только вам их надо поменять - надо лезть в код и пересобирать приложение. Вариант с map - более универсален.
Я бы чуть чуть уточнил. В 99% случаев (даже наверное больше) - никак, да. Но - если у нас интерпретируемый язык (или даже если C#, но мы пытаемся выполнить код из строки - eval вроде называется), то возможно изменение скорости работы тупо за счет времени передачи интерпретируемого кода с винта в память и т.д. Однако - эта разница НАСТОЛЬКО мала, что ей проще пренебречь. Но чисто теоретически, при выполнении выше описаных условий - разница есть.
Дѣаволъ, потому что история становления языка - очень долгая. И в нем вложено дохреналион диалектических особенностей. От которых нельзя отказаться в силу того, что тогда носители этого диалекта поднимут дикий вой. А насчет "без исключений" - возможно такие есть среди молодых или очень узкорегиональных языков.
Deathgar, передаются вызовом метода SetParam или как то так. Нет, это тот же шейдер. Относитесь к этому как к паблик-переменным. Как шейдер начинает рисовать - это вопрос к логике шейдера, вариантов много.
MauzLord, вариантов много. Если пар не сильно много - то можно вообще заранее сгенерировать все пары, перемешать рандомно массив и потом возвращать из него последовательно.