'delegate<R(A...)>::is_member_pair<<unnamed-symbol>>': no appropriate default constructor available
'delegate<R(A...)>::is_const_member_pair<<unnamed-symbol>>': no appropriate default constructor available
Я изъездил эту страну вдоль и поперек, общался с умнейшими людьми и я могу вам ручаться в том, что обработка данных является лишь причудой, мода на которую продержится не более года. (с) Эксперт, авторитет и профессионал из 1957 г.
Здравствуйте, Barbar1an, Вы писали:
B>Нашел в инетах обновленную версию быстрых делегатов, но в VS2015 скомпилить ее не могу, с++ в ней всё поддерживает что нужно?
Ради чего вся эта порнография?
Здравствуйте, kov_serg, Вы писали:
_>Здравствуйте, Barbar1an, Вы писали:
B>>Нашел в инетах обновленную версию быстрых делегатов, но в VS2015 скомпилить ее не могу, с++ в ней всё поддерживает что нужно? _>Ради чего вся эта порнография?
ну кода в 10 раз меньше и можно подписывать лямбды, и в 1.5 раза быстрее std::function
Я изъездил эту страну вдоль и поперек, общался с умнейшими людьми и я могу вам ручаться в том, что обработка данных является лишь причудой, мода на которую продержится не более года. (с) Эксперт, авторитет и профессионал из 1957 г.
Здравствуйте, Barbar1an, Вы писали:
B>'delegate<R(A...)>::is_member_pair<<unnamed-symbol>>': no appropriate default constructor available B>'delegate<R(A...)>::is_const_member_pair<<unnamed-symbol>>': no appropriate default constructor available
Здравствуйте, prezident.mira, Вы писали:
PM>Здравствуйте, Barbar1an, Вы писали:
B>>'delegate<R(A...)>::is_member_pair<<unnamed-symbol>>': no appropriate default constructor available B>>'delegate<R(A...)>::is_const_member_pair<<unnamed-symbol>>': no appropriate default constructor available
PM>Можно минимальный пример кода?
Здравствуйте, kov_serg, Вы писали:
_>Здравствуйте, prezident.mira, Вы писали:
PM>>Здравствуйте, Barbar1an, Вы писали:
B>>>'delegate<R(A...)>::is_member_pair<<unnamed-symbol>>': no appropriate default constructor available B>>>'delegate<R(A...)>::is_const_member_pair<<unnamed-symbol>>': no appropriate default constructor available
PM>>Можно минимальный пример кода?
_>https://stackoverflow.com/questions/35912409/impossibly-fast-delegate-in-c11-on-msvc14
Ага, я тоже сразу подумал про то, что надо попробовать заменить создание объекта на обращение к ::value.
Здравствуйте, kov_serg, Вы писали:
_>Здравствуйте, prezident.mira, Вы писали:
PM>>Здравствуйте, Barbar1an, Вы писали:
B>>>'delegate<R(A...)>::is_member_pair<<unnamed-symbol>>': no appropriate default constructor available B>>>'delegate<R(A...)>::is_const_member_pair<<unnamed-symbol>>': no appropriate default constructor available
PM>>Можно минимальный пример кода?
_>https://stackoverflow.com/questions/35912409/impossibly-fast-delegate-in-c11-on-msvc14
вай пасиба)
Я изъездил эту страну вдоль и поперек, общался с умнейшими людьми и я могу вам ручаться в том, что обработка данных является лишь причудой, мода на которую продержится не более года. (с) Эксперт, авторитет и профессионал из 1957 г.
похоже я погорячился, там при создании память выделяется поэтому этот вариант делегатов сильно тормознее по сравнению с оригиналом
Я изъездил эту страну вдоль и поперек, общался с умнейшими людьми и я могу вам ручаться в том, что обработка данных является лишь причудой, мода на которую продержится не более года. (с) Эксперт, авторитет и профессионал из 1957 г.
ДФ>>template<class R, class ...A>
ДФ>>class delegate<R (A...)>
ДФ>>
ДФ>>Нераспарсил, а что за параметр R (A...) у шаблона delegate? ДФ>>Функция-не функция (нет возвращаемого значения). ДФ>>Что это?
NB>функция, возвращающая R
В мое время писали как-то так R (*)(A...).
Я что-то упустил в плюсах. Буду навёрстывать...
Здравствуйте, Barbar1an, Вы писали:
B>похоже я погорячился, там при создании память выделяется поэтому этот вариант делегатов сильно тормознее по сравнению с оригиналом
в общем вот бенчмарки
FastDelegate ctor: 0.001089 (не поддерживает лямбды)
C++14 Delegate ctor (my adaptive allocator): 0.012582
C++14 Delegate ctor (new allocator): 0.207923
FastDelegate call: 0.083223 (не поддерживает лямбды)
C++14 Delegate call (my adaptive allocator): 0.084994
C++14 Delegate call (new allocator): 0.083777
из них видно что время создания у с++14 с вы делением памяти через new ужасно долгое
я сделал умнее, но все равно в 12 раз медленнее оригинала(умнее значит что мы храним 8 байт которые использем для хранения данных если они помещаются или для хранения указателя на память в куче)
скорость вызова везде похожая
Я изъездил эту страну вдоль и поперек, общался с умнейшими людьми и я могу вам ручаться в том, что обработка данных является лишь причудой, мода на которую продержится не более года. (с) Эксперт, авторитет и профессионал из 1957 г.
Здравствуйте, Barbar1an, Вы писали:
B>Нашел в инетах обновленную версию быстрых делегатов, но в VS2015 скомпилить ее не могу, с++ в ней всё поддерживает что нужно?
B>//здесь был код
А чем это принципиально отличается от `std::function`? На первый взгляд то же самое стирание типов с динамическим выделением памяти. Если проблема действительно в динамическом выделении памяти, то попробуйте какую-нибудь из реализаций `std::function` с предвыделенным буфером внутри: