@ProCxx

Страница 2389 из 2477
Аттрибутивно-ассоциативный ряд
29.09.2018
14:09:21
T
а конструктор?

Constantine
29.09.2018
14:09:30
Аттрибутивно-ассоциативный ряд
29.09.2018
14:10:15
T&&
не хочет с ссылкой работать

Constantine
29.09.2018
14:10:25
вот только чтобы я умел в deduction guides, а без них вы пытаетесь класс инстанцировать без шаблонных параметров

Google
Аттрибутивно-ассоциативный ряд
29.09.2018
14:11:23
логично

Constantine
29.09.2018
14:12:29
template <class T> wrapper(T&&) -> wrapper<T>;

Аттрибутивно-ассоциативный ряд
29.09.2018
14:13:10
работает ?

спасибо

можете сделать небольшое ревью? Я написал composable futures. можно писать (f1 || f2) && (std::move(f3) || f4) && std::move(f5); https://wandbox.org/permlink/93lWzdZ8w0aWKfAm простыня кода в файле future_combine.hpp

Maxim
29.09.2018
16:10:23
Подскажите, как реализовать перестановки или сочетания на c++? Есть ли какая-то стандартная библиотека? Алгоритм?

Maxim
29.09.2018
16:15:32
std::next_permutation
Спасибо)

Egor
29.09.2018
16:56:10
Евгений
29.09.2018
18:22:23
Асм листинг под каждый вариант кода
Я сделал objdump -S, может лучше вам скинуть бинарники?

Там рили много всего

Вот: https://gist.github.com/ivanstepanovftw/7ab86c49dedb72a535cda1e4d9856611

Аттрибутивно-ассоциативный ряд
29.09.2018
19:37:13
Как упихать некопируемый объект в std::bind? Он зачем то пытается скопировать его в тупл https://wandbox.org/permlink/jalQas3TTgF4TPcV

Google
Anton
29.09.2018
19:39:00
std::cref

Но тогда объект должен будет жить где-то отдельно

Аттрибутивно-ассоциативный ряд
29.09.2018
19:39:39
мне нужно упаковать его внутрь функтора

Kotbegemot
29.09.2018
19:43:35
C++ 11/14/17 ?

Anton
29.09.2018
19:44:02
Не понятно зачему ему копировать, но обойти можно по-всякому. Хоть shared_ptr

Andrew
29.09.2018
19:46:55
А можно вопрос, зачем bind, если есть лямбды?

Starikov
29.09.2018
19:47:55
А можно вопрос, зачем bind, если есть лямбды?
Для превращения готовых функторов к нужному типу

Andrew
29.09.2018
19:49:16
Он же у bind'а неспецифицирован?

Anton
29.09.2018
19:50:01
Для превращения готовых функторов к нужному типу
Как будто лямбду нельзя запихать в функтор

Аттрибутивно-ассоциативный ряд
29.09.2018
19:52:03
Как будто лямбду нельзя запихать в функтор
Да, лямбда должна сработать. Непонятно только, почему не работает bind если в документации написано что аргументы муваются

Ещё написано что unique_ptr поддерживается, а на деле снова копирование

Max
29.09.2018
19:54:51
Копирует он потому что неизвестно когда и где он вызовется.

Аттрибутивно-ассоциативный ряд
29.09.2018
19:56:09
Max
29.09.2018
20:00:03
Почему не мувается если можно?
Потому что ему нужно её где-то сохранять. А именованный параметр -- это lvalue, хоть и его тип rvalue.

Аттрибутивно-ассоциативный ряд
29.09.2018
20:00:22
Так я передаю как rvalue

При это tuple легко подхватывает move-only типы

А у бинда проверка что тип копируемый

Нипанятна

Yarique
29.09.2018
20:12:01
Зачем у UDP сокета в boost::asio функция boost::asio::ip::udp::socket::shutdown ? она же всегда должна генерить boost::asio::error::basic_errors::not_connected ошибку

Google
Аттрибутивно-ассоциативный ряд
29.09.2018
20:13:00
Yarique
29.09.2018
20:13:46
лямбда тоже копируется :’(
лямбда с move захватом в C++14 же появилась

Аттрибутивно-ассоциативный ряд
29.09.2018
20:14:00
у меня 2z

пишут что function ожидает копируемый тип но потом его мувает

чото ерунда

Anton
29.09.2018
20:14:45
В std::async он мувает без проблем

Yarique
29.09.2018
20:15:14
пишут что function ожидает копируемый тип но потом его мувает
boost asio юзаешь? в каком контексте ожидает?

Anton
29.09.2018
20:15:15
Может конечно на bind просто забили

Аттрибутивно-ассоциативный ряд
29.09.2018
20:15:50
boost asio юзаешь? в каком контексте ожидает?
нет, просто хочу функтор внутри которого лежит некопируемый объект

но видимо так нельзя, если functor только копируемый

Yarique
29.09.2018
20:16:33
[th=std::move(thing)](auto&& ...) {...}

Max
29.09.2018
20:16:48
Так я передаю как rvalue
Это неважно. Параметр — это всегда lvalue.

При это tuple легко подхватывает move-only типы
Это неправда. https://wandbox.org/permlink/ABzFhlJjF3rK5Ozi

Yarique
29.09.2018
20:17:50
но видимо так нельзя, если functor только копируемый
ты под функтором что подразумеваешь? std::function или класс с operator() ?

Аттрибутивно-ассоциативный ряд
29.09.2018
20:18:05
std::function

хочу хранить как колекцию Callable объектов

[th=std::move(thing)](auto&& ...) {...}
https://wandbox.org/permlink/x2gOZdyX4y9PJvS5 не работает лямбда

Max
29.09.2018
20:22:59
https://wandbox.org/permlink/6EInUrgMVSrpWZxj
Отлично. Только ты передал туда rvalue.

а bind просто пробрасывает параметр.

Google
Max
29.09.2018
20:23:19
Который lvalue.

https://wandbox.org/permlink/3rm45Q6uHUGnwDio

Аттрибутивно-ассоциативный ряд
29.09.2018
20:24:00
вот как ему объяснить чтобы он пробрасывал rvalue если параметр через std::move передали

Yarique
29.09.2018
20:24:45
Аттрибутивно-ассоциативный ряд
29.09.2018
20:25:14
прикольно но не подходит

https://wandbox.org/permlink/3rm45Q6uHUGnwDio
https://wandbox.org/permlink/ktOjmvqboTMtO5JR - через make_tuple нормально пробрасывать rvalue

Max
29.09.2018
20:26:59
а bind внутри не мувит.

Аттрибутивно-ассоциативный ряд
29.09.2018
20:27:14
std::bind не может почему то смувить, обязательно скопировать

кусок бесполезного г***а. придется свой писать ?

Yarique
29.09.2018
20:28:33
Аттрибутивно-ассоциативный ряд
29.09.2018
20:29:19
где код, который так утверждает ?
https://wandbox.org/permlink/j3uXEQAIcwYxsNJb

я с этого и начал тред

бинд внутри проверяет что параметр копируемый.

Yarique
29.09.2018
20:31:03
https://wandbox.org/permlink/j3uXEQAIcwYxsNJb
я не мотал сильно вверх ты что делаешь в std::bind(&wrapper::operator(), std::move(wrapper{})); по-твоему?

Аттрибутивно-ассоциативный ряд
29.09.2018
20:31:37
передаю указатель на метод и rvalue аргумент который нормальные посоны понимают и мувают

Аттрибутивно-ассоциативный ряд
29.09.2018
20:32:04
первый аргумент же

Yarique
29.09.2018
20:32:10
это же ссылка

Google
Max
29.09.2018
20:32:11
))

Аттрибутивно-ассоциативный ряд
29.09.2018
20:32:12
&wrapper::operator()

не тролируй меня, у меня целый день кланг крешится и я замучался

Yarique
29.09.2018
20:33:01
не тролируй меня, у меня целый день кланг крешится и я замучался
не пытался, я не правильно просто понял тебя

&wrapper::operator()
должен байндиться с первым параметром wrapper*

Max
29.09.2018
20:33:36
https://wandbox.org/permlink/Ue219taFfbzOsNND

вот так работает

Yarique
29.09.2018
20:33:47
указателем на wrapper класс

Аттрибутивно-ассоциативный ряд
29.09.2018
20:34:27
https://wandbox.org/permlink/Ue219taFfbzOsNND
красиво. классно. но в функтор не засунешь %( какая сигнатура у op теперь,

Yarique
29.09.2018
20:35:30
https://wandbox.org/permlink/Ue219taFfbzOsNND
хера се, я не знал что можно байндить вызов метода класса по ссылке на класс

Max
29.09.2018
20:35:36
ну и Ярик конечно прав — тебе нужно передавать указатель.

Страница 2389 из 2477