Описание тега function-object

В объектно-ориентированных языках объект функции (также известный как функтор) - это функция, которая позволяет использовать объекты, как если бы они были обычными функциями.
3 ответа

Являются ли указатели функций функциональными объектами в C++?

Стандарт C++ определяет функциональные объекты как: Тип объекта функции - это тип объекта, который может быть типом выражения postfix в вызове функции. ( ссылка) Сначала я думал, что функциональные объекты являются функторами, но потом я понял, что …
27 мар '18 в 01:53
3 ответа

Как вычисляется факториал?

Скажем, есть функция для расчета факториала (n) Факториал (7) создает 7 функциональных объектов для каждого из n от 1 до 7 и используйте эти значения, когда это необходимо (для факториала (8) как факториала (7)*8)
11 мар '09 в 05:03
1 ответ

Понимание MyClass x(y); где у типа MyClass

У меня есть следующий код, который является частью упражнения (о котором я спрашивал здесь). class MyInt { public: MyInt(int x) : MyValue(new int(x)){}; MyInt() { MyValue = 0; } private: int* MyValue; } int main(int argc,char** argv) { MyInt y(1); M…
21 июл '14 в 22:10
1 ответ

Терминология окружающих функторов

Давайте возьмем простой функтор class LessThan { public: explicit LessThan (int in ) : val(in) {} bool operator() (int param) const { return param < val; } private: int val; }; который я могу использовать, например, как это - vector<int> my…
02 июл '16 в 18:07
2 ответа

Наличие объектов функции автоопределения типа в C++

Я хотел отсортировать вектор, содержащий целые числа, в обратном порядке, но так как я привык к такому типу дедукции в C++, я передал объект функции больше<>(), не указав int, что еще это может быть? Это не работало с использованием g++, но работало…
30 дек '15 в 23:59
1 ответ

std::set - подобная поддержка объекта функции в моем контейнере

Я реализовал свой собственный контейнер: template&lt;typename T&gt; class MyContainer { // body where in some point 2 elements of collection are compared (-1, 0 and 1 possible comparison results) }; То, что я хочу сделать, это добавить поддержку фун…
01 дек '13 в 11:14
2 ответа

Функции JavaScript как объекты

У меня возник вопрос по поводу функций JavaScript. Я читаю Функции как Объекты, где мы также можем добавлять свойства и методы к функциям, но замечаю странное поведение, когда выхожу из функции с добавленным свойством. Вот небольшой пример, который …
4 ответа

Использование std::function для переноса объекта функции

Может кто-нибудь помочь мне понять, почему следующий код вызывает ошибку? class A { public: float&amp; operator()() { return _f; } private: float _f = 1; } a; auto&amp; foo() { std::function&lt;float()&gt; func = a; return func(); } int main() { std…
24 окт '16 в 09:08
0 ответов

Как std::function может принимать все объекты функций с одинаковой сигнатурой оператора вызова функции?

Мне интересно, как std::function может принимать объекты разных типов, если они имеют одинаковую сигнатуру оператора вызова функции. Например, эти две структуры явно не связаны, и все же один и тот же объект std::function может быть назначен им обои…
10 дек '18 в 10:57
3 ответа

Обертка функции через (класс объекта) шаблон класса (variadic)

C++ Я пытаюсь реализовать оболочку функции через (класс объекта) шаблон шаблона (variadic). Класс имеет в качестве своего единственного члена данных указатель функции, который инициализируется или присваивается указателю функции, который он переноси…
0 ответов

Универсальный термин для функтора / делегата

"делегат" - это термин, специфичный для C#, и я также запутал несколько человек в последнем вопросе SO, который я задал, используя термин "функтор". Я также видел упоминания о "функциональном объекте". Существует ли универсальный термин для объектов…
01 фев '19 в 12:24
4 ответа

Как передать метод класса в качестве аргумента другому методу класса в Perl 6

У меня есть скрипт, подобный приведенному ниже. Намерение состоит в том, чтобы иметь различные методы фильтрации для фильтрации списка. Вот код 2 3 class list_filter { 4 has @.my_list = (1..20); 5 6 method filter($l) { return True; } 7 8 # filter me…
03 янв '18 в 15:28
1 ответ

Печать в обратном порядке

Попытка перегрузки оператора () в следующем примере: #include &lt;iostream&gt; using namespace std; class Fib { public: Fib() : a0_(1), a1_(1) {} int operator()(); private: int a0_, a1_; }; int Fib::operator()() { int temp = a0_; a0_ = a1_; a1_ = te…
08 апр '15 в 21:19
4 ответа

STL Функциональный - Почему?

В C++ Standard Template Library есть "функциональная" часть, в которой многие классы перегружены () оператор. Приносит ли это удобство использования функций в качестве объектов в C++? Почему мы не можем просто использовать указатель на функцию вмест…
09 мар '12 в 02:38
0 ответов

C++, как вызвать функцию внешнего класса из функтора?

У меня есть функтор, определенный в классе. Я хочу получить доступ к функции-члену внешнего класса непосредственно из функтора. Как я могу это сделать? Я хочу передать этот функтор классу шаблона в другом месте кода. Я не хочу использовать указатели…
01 фев '16 в 17:23
3 ответа

Зачем мне нужно передавать компаратор для создания priority_queue, когда это лямбда, а не когда это std:: большее?

Я читаю пример кода из cppreference: #include &lt;functional&gt; #include &lt;queue&gt; #include &lt;vector&gt; #include &lt;iostream&gt; template&lt;typename T&gt; void print_queue(T&amp; q) { while(!q.empty()) { std::cout &lt;&lt; q.top() &lt;&lt;…
04 июн '18 в 06:28
4 ответа

Превратить строку в объект с новой функцией () - как это работает?

Я не смог заставить JSON.parse преобразовать строку в объект, и я нашел этот код, который решает мою проблему - однако я не могу понять, как он работает. Я был бы признателен, если кто-то может объяснить (начинающему JavaScript), что происходит в 3-…
26 окт '15 в 19:42
1 ответ

Функциональный объект как параметр шаблона

template &lt;typename elemType, typename Comp = less&lt;elemType&gt; &gt; class LessThanPred { public: LessThanPred(const elemType &amp;val) : _val(val){} bool operator()(const elemType &amp;val) const { return Comp(val, _val); } void val(const elem…
04 ноя '15 в 19:45
1 ответ

Вызов функции-шаблона - это законно?

У меня есть функция шаблона (общая функция, чтобы найти минимум), который выглядит так: template&lt;class T, class Func&gt; int findmin(const T* a, int n, Func less){ //... } и звонок: int smallest_matrix(const Matrix*a, int n){ return findmin(a,n,l…
2 ответа

Передача внутренней функции структуры (или класса) как функтора

Как я должен передать функцию внутри структуры как функтор? Я предполагал, что это должно работать нормально, но это не так: #include &lt;algorithm&gt; using namespace std; struct s { int a[10]; bool cmp(int i, int j) { // return something } void in…
24 ноя '12 в 16:24