Описание тега function-call-operator
В C++ оператор вызова функции - это конструкция, которая позволяет использовать объект, как функцию. Эта функция обычно называется функциональным объектом (функтором).
3
ответа
Почему лямбда-оператор вызова неявно const?
У меня есть небольшое "лямбда-выражение" в функции ниже: int main() { int x = 10; auto lambda = [=] () { return x + 3; }; } Ниже приведен "класс анонимного замыкания", сгенерированный для вышеуказанного лямбда-выражения. int main() { int x = 10; cla…
23 ноя '18 в 11:27
4
ответа
Что делает void Classname::operator()(){ .... }?
Я пробираюсь через некоторый код C++ и наткнулся на следующее void Classname::operator()() { //other code here } Я предполагаю, что это как-то связано с перегрузкой конструктора, но кто-то может уточнить это?
06 окт '11 в 03:08
2
ответа
При вызове функции, что такое оператор и каковы операнды?
Я пытаюсь понять некоторые основы языка программирования Си на языке CRC. Вызов функции - это постфиксное выражение, называемое указателем функции, за которым следуют круглые скобки, содержащие возможно пустой, разделенный запятыми список выражений …
10 авг '17 в 13:56
2
ответа
Оператор вызова функции
Возможные дубликаты: Функторы С ++ - и их использование. Зачем переопределять оператор ()? Я видел использование operator() на контейнерах STL, но что это и когда вы используете?
14 янв '11 в 09:01
2
ответа
Перегрузка оператора вызова функции и типа возврата
Я проектирую небольшую математическую библиотеку. У меня есть классы, которые представляют классы функций, например, полиномиальные. Когда они создаются, предоставляются необходимые параметры (a1, a2, a3), так что объект фактически представляет опре…
25 сен '13 в 09:37
1
ответ
C++ - Перегрузка оператора вызова шаблонной функции - Ошибка C2064
Я пытаюсь перегрузить оператор вызова функции в C++, и я получил эту ошибку компиляции, которую я не могу устранить (Visual Studio 2010). Ошибка в строке act(4); #include <stdio.h> #include <iostream> void Test(int i); template <class…
20 сен '12 в 20:59
12
ответов
Зачем переопределять оператор ()?
В библиотеке Boost Signals они перегружают оператор (). Это соглашение в C++? Для обратных вызовов и т. Д.? Я видел это в коде сотрудника (который является большим фанатом Boost). Из всего Буста, это привело меня в замешательство. Любое понимание пр…
25 ноя '08 в 14:07
2
ответа
Перегрузка и оператор круглых скобок в C++
Я хочу определить класс myVector, который поддерживает оба назначения operator= и доступ к скобкам, например myclass(1) = 0.5, Смотрите пример фиктивного ниже class myVector { public: vector<double> _v; myVector(unsigned int size) : _v(size, 0…
30 мар '12 в 21:06
1
ответ
Как я могу использовать `Function Call Operator` для загрузки типов`rvalue` в мой объект?
У меня есть такой класс: template<typename T> class MyClass { public: // ... T && operator()(uint64_t i, uint64_t j); // I want to add a member function like this. T & operator()(uint64_t i, uint64_t j); const T & operator()(ui…
15 окт '15 в 06:39
15
ответов
Что такое функторы С ++ и их использование?
Я много слышу о функторах в C++. Может ли кто-нибудь дать мне представление о том, кто они и в каких случаях они будут полезны?
10 дек '08 в 17:47
4
ответа
Как использовать одну функцию для вызова другой функции с помощью оператора if/case?
Кто-нибудь знает, что я сделал опечатку, потому что мой редактор, и я не могу заставить его работать number=5; switch (number) { case 5: box.onclick = function1; break; case 50: box.onclick = function2; break; } Я также попытался сделать это в выклю…
05 май '14 в 19:46
2
ответа
Как неявно вызвать оператор вызова функции?
Как неявно вызвать оператор вызова шаблонной функции объекта класса? class User_Type { public: template< typename T > T operator()() const; }; void function() { User_Type user_var; int int_var_0 = user_var.operator()< int >(); // explici…
11 ноя '14 в 17:17
3
ответа
Реализовать Fn Trait (оператор вызова) для разных типов аргументов
Например, у меня есть простой классификатор struct Clf { x: f64 } Классификатор возвращает 0, если наблюдаемое значение меньше x, и 1, если больше x. Теперь я хочу реализовать оператор вызова для этого классификатора. Однако функция должна иметь воз…
30 июл '16 в 09:08
2
ответа
Передача ссылки на шаблон перегрузки оператора вызова функции
У меня есть класс, который перегружает оператор вызова функции с помощью функции шаблона, например, так: class Test { public: template<class T> void operator()(T t) { std::cout<<(&t)<<std::endl; }; }; Я хотел бы вызвать его с п…
22 май '15 в 17:54
1
ответ
Как объявить default-функцию для класса?
Оператор вызова функции в C++ позволяет классу действовать как функция. Я использовал его в классе журналирования, где-то вроде этого: logger.setFileName("./debug.log"); logger.log("Log this message"); превращается в это: logger.setFileName("./debu…
14 май '19 в 05:08
1
ответ
Проверьте, есть ли в классе возможно перегруженный оператор вызова функции
Мне интересно, можно ли реализовать черту в C++20 чтобы проверить, есть ли тип T таков, что он имеет возможно перегруженный / возможно шаблонный оператор вызова функции: operator(). // Declaration template <class T> struct has_function_call_op…
16 июн '20 в 02:58
2
ответа
ошибка доступа к окружающей переменной в лямбда-функции
... unordered_map<string ,int> map; for (const auto& str : words) { map[str]++; } auto cmp = [map](string s1, string s2){ if (map[s1] == map[s2]) return s1 < s2; return map[s1] > map[s2]; }; ... Это дает мне no viable overloaded oper…
06 май '20 в 04:55
1
ответ
Есть ли способ создать std::thread, используя объект и его оператор вызова непустого списка аргументов?
Я новичок в std::threadи C++11 в целом. Пытаясь поиграть с примерами из https://en.cppreference.com/w/cpp/thread/thread/thread, я пытаюсь проверить, смогу ли я создать std::thread используя оператор вызова функции-члена класса с непустым списком арг…
22 сен '20 в 06:43
0
ответов
Как перегрузить оператор вызова функции в зависимости от того, вызывается ли она слева или справа
Можно ли перегрузить оператор вызова функции, чтобы: когда вызывающая сторона находится в левой части выражения, всегда вызывается непостоянная версия когда вызывающая сторона находится в правой части выражения, всегда вызывается константная версия …
21 мар '23 в 11:07
1
ответ
Передача статического оператора() как типа удаления
Законен ли следующий фрагмент кода в C++23? #include <memory> #include <cstdio> int main() { struct custom_deleter { static void operator()(int* const ptr) { delete ptr; std::fputs( "Deleted\n", stdout ); } }; auto ptr { std::unique_ptr&…
02 июн '23 в 00:56