Рассмотрим этот код, который, очевидно, не работает, но иллюстрирует, что я хочу сделать.
struct C {
template <int I>
void f(float x) {...}
...
using one = f<1>;
using two = f<2>;
};
C c;
c.one(4.0f);
c.two(77.0f);
В моем классе есть 10 функций-членов, которые могут принимать 2 значения, а не тип, параметры шаблона и я. хочу дать им разные имена, чтобы пользователю не приходилось вводить параметры шаблона. Это иллюстрируется one
и two
выше.
Есть идеи, как это сделать с C ++ 17 или даже с C ++ 20?
Обновление:
Хороший ответ ниже, но, как уже упоминалось, немного многословно. Я пытаюсь избежать:
void one(float v) {
f<1>(v);
}
, хотя мои фактические утверждения будут немного длиннее.
Надеялся, что-то сжатое было доступно.