@ProCxx

Страница 1986 из 2477
Sergey
20.04.2018
08:19:23
?

Александр
20.04.2018
08:19:53
а что за книжечка на столе лежит?

Antony
20.04.2018
08:21:41
По бусту

Sergey
20.04.2018
08:22:27
я так понимаю эта https://www.packtpub.com/application-development/boost-c-application-development-cookbook-second-edition

Google
Antony
20.04.2018
08:23:24
а что за книжечка на столе лежит?
Да от одного разработчика буста книга. У чувака даже сайтик есть http://apolukhin.github.io/

?
20.04.2018
08:23:32
Это офис Яндекса?

Александр
20.04.2018
08:23:33
спасибо

Sergey
20.04.2018
08:23:39
?

Да от одного разработчика буста книга. У чувака даже сайтик есть http://apolukhin.github.io/
Где в Москве можно в печатном варианте приобрести?)) Ни где не видно чёт

Аттрибутивно-ассоциативный ряд
20.04.2018
08:30:10
сам ищу как бы эту лабуду в std::function сконвертить

Sergey
20.04.2018
08:38:45
сам ищу как бы эту лабуду в std::function сконвертить
а чего её конвертить то, у f возвращаемый тип void, на первом и втором месте ожидается int. bind подставляет 2 плейсходера(на первое и второе место), ну и получаем function<void(int,int)>

Aidar
20.04.2018
08:41:49
а std::function вообще мувабл?
Оно должно быть копируемо

Потомучто интерфейс предполагает копирование

Oleg
20.04.2018
08:42:15
но у него функция (F&& f)

Aidar
20.04.2018
08:43:09
Любой тип мувабл

Google
Аттрибутивно-ассоциативный ряд
20.04.2018
08:43:26
а чего её конвертить то, у f возвращаемый тип void, на первом и втором месте ожидается int. bind подставляет 2 плейсходера(на первое и второе место), ну и получаем function<void(int,int)>
падажжи, std::bind возвращает некий тип, который не приводится к std::function, его нельзя просто отдать в функцию например, которая принимает std::function. пока через шаблон сделал но это ужасно

Aidar
20.04.2018
08:44:09
Чо значит не приводится?

Он колабл

Aidar
20.04.2018
08:44:35
Просто он ещё может быть и не копируемым

А фанкшну нужен копируемый

Аттрибутивно-ассоциативный ряд
20.04.2018
08:44:52
http://en.cppreference.com/w/cpp/utility/functional/bind

Return value A function object of unspecified type T, for which std::is_bind_expression<T>::value == true.

Евгений
20.04.2018
08:45:10
но у него функция (F&& f)
норм работает void push(F&& function) { unique_lock<mutex> lock{mutex_m}; deque_m.emplace_back(forward<F>(function)); condition_m.notify_one(); }

Аттрибутивно-ассоциативный ряд
20.04.2018
08:45:51
напиши мне код, который результат std::bind впихивает в foo(std::function<void(int)>)

Nikita
20.04.2018
08:46:42
напиши мне код, который результат std::bind впихивает в foo(std::function<void(int)>)
а std::bind в твоём случае отдаст функтор, который можно вызвать от одного инта?

Аттрибутивно-ассоциативный ряд
20.04.2018
08:46:50
да

Nikita
20.04.2018
08:47:03
да
и этот функтор будет копируемый?

Аттрибутивно-ассоциативный ряд
20.04.2018
08:47:08
он вызываемый, но не конвертируемый в std::function<void(int)>

The return type of std::bind is CopyConstructible if all of its member objects (specified above) are CopyConstructible, and is MoveConstructible otherwise.

Aidar
20.04.2018
08:47:34
Ну ответь

Аттрибутивно-ассоциативный ряд
20.04.2018
08:47:48
так что для интов будет копируемый и мувабл

Aidar
20.04.2018
08:48:11
С чего ты взял что копируемость зависит от того что там инт

Antony
20.04.2018
08:48:27


Google
Sergey
20.04.2018
08:48:31
void f(int n1, int n2, int n3, const int& n4, int n5) { std::cout << n1 << ' ' << n2 << ' ' << n3 << ' ' << n4 << ' ' << n5 << '\n'; } template<class T> void test(T test) { test(2, 1); } int main() { using namespace std::placeholders; // demonstrates argument reordering and pass-by-reference int n = 7; std::function<void(int, int)> f1 = std::bind(f, _2, _1, 42, std::cref(n), n); test(f1); return 0; }

Аттрибутивно-ассоциативный ряд
20.04.2018
08:49:01
а теперь без шаблона

Sergey
20.04.2018
08:49:10
,kz///

void f(int n1, int n2, int n3, const int& n4, int n5) { std::cout << n1 << ' ' << n2 << ' ' << n3 << ' ' << n4 << ' ' << n5 << '\n'; } void test(std::function<void(int, int)> test) { test(2, 1); } int main() { using namespace std::placeholders; // demonstrates argument reordering and pass-by-reference int n = 7; std::function<void(int, int)> f1 = std::bind(f, _2, _1, 42, std::cref(n), n); test(f1); return 0; }

Аттрибутивно-ассоциативный ряд
20.04.2018
08:49:53
хм, как оно в function залезло. у меня clang аж извелся в попытках сконвертировать

ща потестю

Sergey
20.04.2018
08:53:06
void test(std::function<void(int, int)> test) { test(2, 1); std::function<void(int, int)> t2 = test; t2(3, 4); }

не могу понять что именно у тебя "не копируемо"?

Aidar
20.04.2018
08:53:33
Оно не хранит reference wrapper

Оно сохранит именно ссылку

Sergey
20.04.2018
08:54:14
ладно, напиши пример который НЕ будет работать

не могу вдуплить зачем тебе reference wrapper

Aidar
20.04.2018
08:55:06
Почему у меня

cref я писал чтоль

Или может это мой код?

Google
Sergey
20.04.2018
08:57:45
ну этот враппер только тебе упёрся, зачем то))

Аттрибутивно-ассоциативный ряд
20.04.2018
08:58:00
С чего ты взял что копируемость зависит от того что там инт
со стандарта. если все аргументы копируемые, то весь враппер копируемый

Sergey
20.04.2018
09:01:13
Кто нибудь может поделится что за сумасшествие вы пытаетесь сотворить с этим несчастным bind и function?))

Аттрибутивно-ассоциативный ряд
20.04.2018
09:14:28
https://wandbox.org/permlink/11fEI5yUXD68edbe

вот чо он ругается

соррян, туплю Ж(

Ilya
20.04.2018
09:16:59
лол вы знали что в телеге есть игры https://t.me/CapitalistGameBot?start=410100862

Admin
ERROR: S client not available

Max
20.04.2018
09:19:51
соррян, туплю Ж(
std:: function<void(void)>?

Аттрибутивно-ассоциативный ряд
20.04.2018
09:20:10
да Ж)

Aidar
20.04.2018
09:26:03
со стандарта. если все аргументы копируемые, то весь враппер копируемый
Нет, если аргумент ref wrapper то оно хранит ссылку а не враппер

Или я не умею читать

Аттрибутивно-ассоциативный ряд
20.04.2018
09:26:35
ну ref-wrapperкопируемый же?

а внутри ссылка, да

Aidar
20.04.2018
09:27:07
Я так понял что оно раскрывает враппер при создании

И хранит прям ссылку

Евгений
20.04.2018
09:29:25
Помогите разобраться с std::condition_variable. Кратко: как подождать завершения всех потоков, если они все либо работают, либо ждут? https://gist.github.com/AshFTW/4e768bde8577fd2a12ae20aa74b72aed

Google
Aidar
20.04.2018
09:41:53
Проблема крч в воркере, точнее в логике проверки пустоты очереди и конца

Kathu
20.04.2018
09:45:51
почитать Вильямса советую, я прям кайфую от его книги

Nikolai
20.04.2018
09:50:13
почитать Вильямса советую, я прям кайфую от его книги
Параллельнгое программирование? А она не устарела, с учетом того, что написана она была под 11 стандарт?

Kathu
20.04.2018
09:51:34
может я новую редакцию какую-то читаю?

а какие есть книги такие же только по С++14?

PRoSToC0der
20.04.2018
09:52:33
ребят, есть ли какой-нибудь эффект от explicit на конструкторе без параметров? struct S { explicit S() = default; }; void f(S); int main() { S s = {}; // error? f({}); // error? } пробовал гуглить, но точного и однозначного ответа не нашёл

Ilia
20.04.2018
10:00:04
А на скейт-бордах слаломных там не ездят?

Kathu
20.04.2018
10:00:46
это их HR?)

Denis
20.04.2018
10:02:52
это их HR?)
кажется да

я был у них на собеседовании

Роман
20.04.2018
10:13:43
Товарищи, вы как думаете, если есть кусок кода, неоднократно используемый только в одной функции, насколько плохо для стиля кода сделать его локальной лямдой? Типа вот так: auto fn = [&] (args...) { /*code */} if (cond) { fn(cond); } else { for (auto &i : vec) { fn(i); } }

Oleg
20.04.2018
10:14:01
збс же

Nik
20.04.2018
10:14:09
а что плохого?

Oleg
20.04.2018
10:14:25
хотя, возможно, тебе стоит поиграться с условиями и сделать код проще

Роман
20.04.2018
10:14:35
Просто товарищи старпёры в таких случаях любят всякие статики

Oleg
20.04.2018
10:16:01
если это твой код, то я бы, наверно, сделал как-то так: if (cond) vec.clear(); vec.push_back(cond); for (auto)...

Роман
20.04.2018
10:16:21
В реальном кейсе всё сильно хуже

Мне, собственно, интересна граница, когда такое стоит вытаскивать как отдельную функцию

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