Использование decltype(auto) для типа возвращаемого значения в шаблоне пользовательского вызываемого классаC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Использование decltype(auto) для типа возвращаемого значения в шаблоне пользовательского вызываемого класса

Сообщение Anonymous »

Я экспериментирую с decltype(auto) в пользовательском шаблоне вызываемого класса, который упрощает поведение std::function. Моя цель — сохранить точный тип возвращаемого значения, включая такие квалификаторы, как константность, ссылка и т. д., вызываемого объекта при его вызове. Вот очень упрощенная версия класса.
P.S.: C++ использует R вместо decltype(auto):
https://en.cppreference.com/w/cpp/utili ... operator()
Мне интересно, могу ли я использовать decltype(auto) с тем же эффектом, что и R
template
class Callable;

template
class Callable
{
public:
template
Callable(F&& f) : func(std::forward(f)) {}

decltype(auto) operator()(Args... args) {
return func(std::forward(args)...);
}

private:
std::decay_t func;
};


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

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

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

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

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

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

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