a, double b, double c, double d) {
if(a > b)
return f1(b, c); // передать значения b и c
else
return f2(a, c, d); // передать значения a, c, d
}
какой вопрос, такой ответ :)
функции же могут быть произвольными, точнее функция от нескольких даблов, возвращающая дабл
понятнее не стало
в шаблон передаются две функции, и несколько даблов, некоторые из этих даблов используюся шаблоном, чтоб определить, какую из функций запустить, потом шаблон запускает одну из функций, передав ей нужные аргументы
что такое НУЖНЫЕ?
вот это часть проблемы, как раз.
те, которые нужны, чего тебе непонятного
ладно, задам вопрос иначе: double f1(double, double, double, double) double f2(double, double, double, double) mixer(f1, f2, a, b, c, d, e, f, g); - что должен вызвать и с какими аргументами?
сдаётся мне товарищу на самом деле нужна struct args
а я боюсь, что он хочет по именам матчить
так это struct args и делает
А можно пример?
struct args_t { double a; double b; double c; double d; }; double fn1(args_t const& args) { //use args.b & args.c } double fn2(args_t const& args) { //use args.a, args.c & args.d }
не знаю про умно, а просто самое наивное из наивных я же не предложил для чтения b/c использовать get<enum class>(auto context)
да, правильно, у меня есть два варианта - сделать разные типы, которые по сути являются даблами, чтоб было чтото типа double f1(typeA, typeB, typeC, typeD), либо передавать в шаблон массив, и списки индексов
что правильно? я вопрос задал, ответь на него
это ответ на вопрос "как вы бы решали задачу", а вопрос задан "что за задача"
ну слушай это уже не конструктивно
похоже, один из нас дурак
вы задачу объясните
вот ответьте, я хочу написать программу, использую CRTP но у меня получается другая программа, что мне делать
Видимо, это неконструктивно :)
ну вот, вроде бы работающий пример того, чего я хочу https://ideone.com/bjxo7q
мне кажется, так нехорошо, потому что конечные функции начинают зависеть от этой структуры
Обсуждают сегодня