Информация об изменениях

Сообщение Как бы такое в умный контейнер положить от 08.02.2019 8:21

Изменено 08.02.2019 8:26 Мёртвый Даун

Как бы такое в умный контейнер положить
Есть порядка 20 различных параметров X возможно разного типа. Какие то из них IN, какие то OUT, какие то IN/OUT, одни обязательные, другие нет (т.е. могут быть не указаны). Все они друг от друга зависят.

Т.е. в лоб это можно написать так,

bool CalculateA(IN int p0,
IN char* p1,
IN char* p2,
IN double p3,
INOUT double* p4,
INOUT int* p5,
OUT char* p6,
OUT double* p7,
OUT int* p8
)
{
// какие то расчеты по какому то известному алгоритму.
}

bool CalculateB(IN int p0,
IN char* p1,
IN double p2,
INOUT double* p3,
INOUT int* p4,
OUT char* p5,
OUT double* p6
)
{
// какие то расчеты по какому то известному алгоритму.
}


Функций таких много и писать такие развесистые функции по 20 параметров не хочется.

Подкиньте идеи по красивше сделать. C++03/C++11.
Спасибо.

UPD: почитал тут в соседнем топике про Ranges. Очень крута, наверное это бы мне подошло. Но не дадут заюзать в проекте.
Как бы такое в умный контейнер положить
Есть порядка 20 различных параметров X возможно разного типа. Какие то из них IN, какие то OUT, какие то IN/OUT, одни обязательные, другие нет (т.е. могут быть не указаны). Все они друг от друга зависят.

Т.е. в лоб это можно написать так,

bool CalculateA(IN int p0,
               IN char* p1,
               IN char* p2,
               IN double p3,
               INOUT double* p4,
               INOUT int* p5,
               OUT char* p6,
               OUT double* p7,
               OUT int* p8
              )
{
    // какие то расчеты по какому то известному алгоритму.
}

bool CalculateB(IN int p0,
               IN char* p1,
               IN double p2,
               INOUT double* p3,
               INOUT int* p4,
               OUT char* p5,
               OUT double* p6
              )
{
    // какие то расчеты по какому то известному алгоритму.
}


Функций таких много и писать такие развесистые функции по 20 параметров не хочется.

Подкиньте идеи по красивше сделать. C++03/C++11.
Спасибо.

UPD: почитал тут в соседнем топике про Ranges. Очень крута, наверное это бы мне подошло. Но не дадут заюзать в проекте.