Как применить концепцию к конечному возвращаемому типуC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Как применить концепцию к конечному возвращаемому типу

Сообщение Anonymous »

Вот базовый пример:

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

template 
constexpr auto foo(T arg, Callable&& make)
-> decltype(make(std::declval())) {
return make(arg);
}
Можно ли применить ограничение к конечному возвращаемому типу и как?
Теперь я делаю следующее:

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

template 
constexpr auto bar(T arg, Callable&& make){
return make(arg);
}
можно вызвать только с помощью callable, возвращающего целочисленное значение, что мне кажется немного запутанным и трудным для чтения (хотя, возможно, дело вкуса).
Это полный пример:

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

#include 
#include 
#include 

template 
constexpr auto foo(T arg, Callable&& make)
-> decltype(make(std::declval())) {
return make(arg);
}

template 
constexpr auto bar(T arg, Callable&& make) {
return make(arg);
}

double make_double(int i) { return 3.14 * i; }
int make_int(int i) { return i; }

int main() {
std::cout 

Подробнее здесь: [url]https://stackoverflow.com/questions/79815483/how-to-apply-a-concept-to-a-trailing-return-type[/url]
Ответить

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

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

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

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

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