Привет снова и нравящийся другому 'не был бы это быть большим, если мы объединим две вещи, что я действительно ничего не понимаю о '-вопросе ;)
Этот Эпизод: Универсальные формы OpenGL и Шаблоны C++
Идея: Разве не было бы замечательно, если Вы могли бы записать единственную шаблонную функцию для установки универсальных форм в программе построения теней OpenGL?
Проблема: Универсальные формы в программах построения теней установлены с помощью многих glUniform* функции. Они отличаются по:
Тип: существует несколько типов, которые может взять универсальная форма. Это приводит к различным именам функций в сходстве с OpenGL: glUniform1f, glUniform1i, glUniform1fv, и т.д.
Они могли легко быть 'объединены' с помощью перегрузки функций. Но это приводит к огромному количеству подобных функций.
Первый вопрос: действительно ли возможно использовать шаблоны в этом месте? Насколько я понимаю шаблоны, необходимо было бы специализироваться для каждой новой функции. И в конце у Вас было бы то же количество функций как с простой перегрузкой.
Количество параметра: число в функциях glUniform отсылает к числу данные параметры. Существует тот к 4 параметрам, который касается простых значений до векторов с 4 элементами.
Второй вопрос: действительно ли возможно реализовать 'динамическое' количество параметра с шаблонами?
Матрицы: сделать вещи сложными там - другой класс универсальных функций, которые отправляют матрицы, но поскольку я действительно не использую их, я действительно не интересуюсь ими.
Возможно нет никакого реального способа упростить универсальные методы..., но возможно кто-то может предложить отличное решение с помощью могущественных шаблонов?
С наилучшими пожеланиями, Florian
1: Да и да, но по крайней мере, когда компилятор жалуется, что не может выбрать между перегрузками с плавающей запятой и двойной перегрузкой, вы можете очень просто принудительно заставить его, то есть setUniform
вместо setUniform (blah)
2: На этот раз перегрузка - более простое решение :)
3: В чем вопрос?
Вопрос в том, зачем вам такое делать?