Как я могу иметь временную переменную в функции constexpr?

Это упрощенная версия того, что я хотел бы сделать.

constexpr float f(float a, float b){
    constexpr float temp = a+b;
    return temp*temp*temp;
}

В моей версии a+b — это нечто гораздо более сложное, поэтому я не хочу вырезать и вставлять это три раза. Использование 3 *(a+b )также не является рабочим решением для реальной функции. Я пытаюсь сохранить вопрос, связанный с синтаксисом, а не с алгеброй. Я могу заставить его работать, переместив a+b в его собственную функцию constexpr, но я бы предпочел не загрязнять пространство имен бесполезными функциями.

5
задан Öö Tiib 9 June 2013 в 04:10
поделиться