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

Сообщение Указатель на функцию от 27.02.2015 8:46

Изменено 27.02.2015 8:46 emergen

Добрый день, появилась необходимость в зависимости от типа вычисления использовать функцию, но не хочется ветвлений, подскажите пожалуйста как получить указатель на функция, после чего вызывать функцию по указателю независимо от варианта вычисления (предварительно записав в указатель адрес нужной функции)?
square = [](int x) { return x * x; }

cube = [](int x) { return x * x; }


if(one)
{
    pointer_on_method = square;
}
if(two)
{
    pointer_on_method = cube;
}


....

использовать далее


pointer_on_method( x )
Указатель на функцию
Добрый день, появилась необходимость в зависимости от типа вычисления использовать функцию, но не хочется ветвлений, подскажите пожалуйста как получить указатель на функцию, после чего вызывать функцию по указателю независимо от варианта вычисления (предварительно записав в указатель адрес нужной функции)?
square = [](int x) { return x * x; }

cube = [](int x) { return x * x; }


if(one)
{
    pointer_on_method = square;
}
if(two)
{
    pointer_on_method = cube;
}


....

использовать далее


pointer_on_method( x )