Anton
воооот) тогда след. вопрос. если у меня есть два объекта foo1 foo2 типа Foo, то как интерпретировать &Foo::sync?
Denis
биндить объект
Anton
ну т.е. bind(&foo.sync) ?
Anton
без & наверное
Denis
В пайтоне, например, методы класса это простые функции, живущие в пространстве имён класса, и принимающие объект первым аргументом, так?
Denis
Ну вот тут то же самое почти
Anton
так, примерно
Denis
объект биндишь как первый аргумент
Anton
короче в плюсах просто передача this неявная
Anton
насколько я понял
Ibragim
Не проверял, но по смыслу так auto f = &Foo:sync; // адрес метода f(&foo1); // foo1.sync f(&foo2); // foo2.sync
Denis
Охохох
Anton
ладно, буду пробовать. надо бы разобраться в функциональных объектах и биндинге получше. плаваю пока в этом)) спасибо!
Denis
MyClass myObj1; MyClass myObj2; auto func = std::bind( &MyClass::Method, myObj1 ); func(); // myObj1.Method();
Denis
Что делать, если есть другие аргументы
Denis
class MyClass{ public: void Method( int, std::string ); };
Anton
waaat?)) т.е. при биндинге передаем указатель на метод а агрументом тащим сам объект?
Denis
namespase ph = std::placeholder; auto func = std::bind( &MyClass::Method, myObj1, 100, ph::1 ); func( "string" ); // myObj1.Method( 100, "string" );
Denis
Объект это просто первый аргумент метода
Denis
Просто неявный
Anton
А как иначе?
пошел читать про bind)) спасибо за помощь!
Denis
Надо же как-то сказать из какого объекта вызвать метод MyClass::Method
Denis
Дак бинд по сути и не надо
Denis
можешь обернуть всё в лямбду
Anton
ну мне надо разобраться что конкретно бинд делает. что берет и что возвращает.
Denis
MyClass myObj1; auto func = [&]() { myObj1.MyMethod(); };
Sheridan
ну мне надо разобраться что конкретно бинд делает. что берет и что возвращает.
чуть не написал про named, вовремя глянул в название чятика
Denis
Бинд возвращает invokable объект, созданный на основе переданного invokable объекта путём замены некоторых аргументов на константные или переменные
Denis
Типо того
Michael
так вот чем ты в отпуске занимаешься)
Denis
Блин, откуда ты тут взялся xD Я уже собираю сумку xD
Anton
еще всплыл вопрос... Если у меня нет копирующего конструктора, то как bind использовать? у меня синглтон. Bind ругается на класс без копирующего конструктора
Michael
если не ошибаюсь можно по ссылке передавать
Michael
попробуй std::ref
Michael
а вообще у тебя там указатель должен передаваться
Anton
std::bind(&Foo::sync, &foo); вот так)) спасибо!
Andrei
& плохо.
Andrei
std::ref - правильный совет.
Andrei
Но вообще всё равно плохо.
Andrei
надо следить чтобы объект жил вплоть то вызова метода.
Deleted Account
надо следить чтобы объект жил вплоть то вызова метода.
я б завернул всё в уник птр и мувал бы
Andrei
Не выйдет.
Andrei
unique_ptr — noncopyable
Andrei
а у человека в векторе std::function
Andrei
Они требуют копируемости.
Deleted Account
ну тогда пусть сделает структуру с 2 векторами, один который счас есть, второй с уник птр на обджэкты
Deleted Account
хотя зависит от контекста, чъи это объекты
Deleted Account
я недочитал даже
Anna
Всем привет, тут есть кто-нибудь, кому плюсов уже мало и хочет перебазироваться на Go?
Surreal
Всем привет, тут есть кто-нибудь, кому плюсов уже мало и хочет перебазироваться на Go?
Вы курсы Go рекламируете? Если да, то ищите среди студентов, состоявшиеся программисты не будут платить за курсы нового языка, я выучат его самостоятельно.
Evgenii
Шикарная формулировка, должен признать)
Zakhar
Поясните новичку за космический эффект go
Surreal
Неа. Сразу работу предлагаю. очень важен бэкграунд на плюсах
Вы тогда по договоренности с @AlexFails лучше разместите короткое описание вакансии, а в самом начале укажите, что нужен C++ программист с переучиванием на Go.
Zakhar
"удобное" написание шаблонный функций и структур - пока всё, что я заметил
Dima
Go - следующий уровень развития крестов
Крылатый
Штоу
Крылатый
Нет.
Surreal
"удобное" написание шаблонный функций и структур - пока всё, что я заметил
Обезьяну можно научить писать на Go. Именно с такой целью он создавался (но более лояльной формулировкой).
Zakhar
Лол
Igor
Эммммммм
серёжа
Крылатый
Не с D перепутали?
Igor
Может с Rust перепутали?
Dima
Обезьяну можно научить писать на Go. Именно с такой целью он создавался (но более лояльной формулировкой).
какие обезьяны? гоу просто очень легко изучается, в отличии от крестов, на которые нужно потратить годы
Dima
Может с Rust перепутали?
с джавой перепутал
Dima
Surreal
Ловите тролля.
Крылатый
Слишком толсто.
Zakhar
мде
Крылатый
Здесь таких не любят.
Dima
спокойно ребята, я вас слушаю
Dima
ваши аргументы
Крылатый
В супапро.
Крылатый
Или даже флудилку/холиварню.