Прямое строка буквально к постоянной функцииC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Прямое строка буквально к постоянной функции

Сообщение Anonymous »

Мой API потребует вызова времени выполнения (constfoo (str)) , чтобы получить окончательный результат, я хотел сократить это, потому что реальные имена функций являются как бы условны. Для этого мне нужно каким-то образом обернуть постоянную функцию, но я не могу сделать это, поскольку аргумент не может быть контейкспр, это также строковый буквальный, который требует, чтобы его размер был известен во время компиляции. PrettyPrint-Override ">

Код: Выделить всё

int runtime(int val) {
std::string foo = "foo"; // some run time operation
return val + 2;
}

template  consteval int constFoo(const char (&data)[N]) {
// ...
const auto d = data[0];
return N;
}

template  int outer(const char (&data)[N]) {
int val = constFoo(data); // Call to consteval function 'constFoo' is not a constant expression
return runtime(val);
}

int main() {
auto d = outer("d");
}
Кроме того, если бы это было как -то возможно, я бы предпочел избежать решения, в котором букваль передается как аргумент шаблона, но, насколько я знаю, это невозможно.

Подробнее здесь: https://stackoverflow.com/questions/797 ... l-function
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»