
Дед Пегас
10.11.2016
09:04:09
Ахринеть большая штука.

Vladislav
10.11.2016
09:04:45

Dumitru
10.11.2016
09:07:14

Vladislav
10.11.2016
09:08:29

Google

Dumitru
10.11.2016
09:10:26

Real Human
10.11.2016
09:13:01

Дед Пегас
10.11.2016
09:14:14
И оно работает?

Real Human
10.11.2016
09:14:25
da
http://stackoverflow.com/questions/30604686/template-tricks-with-const-char-as-a-non-type-parameter
Здесь работает, у меня - нет

Vladislav
10.11.2016
09:14:59
только внутрь строки не заглянуть, опять же (в compile time)

Real Human
10.11.2016
09:15:06
видимо мой компайлер не поддерживает новый стандарт
http://stackoverflow.com/questions/5687540/non-type-template-parameters
а вот

Vladislav
10.11.2016
09:17:18

Real Human
10.11.2016
09:17:35

Google

Vladislav
10.11.2016
09:17:59
и?

Real Human
10.11.2016
09:18:23
и?
чо и? Ты же написал, что >внутрь строки не заглянуть, опять же

Anatoly
10.11.2016
09:18:32
ржу
откуда эта байка?

Vladislav
10.11.2016
09:18:53
так он ее только в runtime дергает, по ссылке/указателю из шаблона

Real Human
10.11.2016
09:18:54
Какая байка?
аа понятно

Anatoly
10.11.2016
09:19:37
какой компилятор ?

Real Human
10.11.2016
09:21:48
visual c++
14.0

Anatoly
10.11.2016
09:28:32
=)

Vladislav
10.11.2016
09:32:07
есть A a = ...;
загадка: какой код быстрее (или работают одинаково) и почему?
vector<A> b{std::move(a)};
или
vector<A> b; b.emplace{std::move(a)};
Считаем что A быстро move'ается, но долго копируется

Real Human
10.11.2016
09:33:21
>vector<A> b; b.emplace{std::move(a)};
стоит учесть время потраченное на стандартный конструктор A? В первом случае вызывается сразу перемещающий конструктор

Vladislav
10.11.2016
09:34:29

Real Human
10.11.2016
09:35:32
а СК для вектора b во втором случае?

Vladislav
10.11.2016
09:36:09

babysitter
10.11.2016
10:09:33
тут наверное всем страшно облажаться. но я вообще не очень понимаю, что тут написано - я не шарю видимо
может emplace_back(std::move(a)) ?
ну или хотя бы за фигурные скобки после emplace поясни

Real Human
10.11.2016
10:13:14

Google

babysitter
10.11.2016
10:28:27
классная задача, спасибо.
я блин даже вот так попробовал уже
A a;
std::initializer_list<A> il = { std::move(a) };
std::vector<A> b(std::move(il));
похоже объект типа initializer_list никак не может быть перемещен, только скопирован
http://stackoverflow.com/questions/8193102/initializer-list-and-move-semantics

Dumitru
10.11.2016
10:52:01
такая ситуация случилась
auto h1 = new Handler<Html>();
auto h2 = new Handler<Index>();
надо h1 и h2 загнать в один вектор, как это сделать я пока себе не представляю
у Html и Index общий родитель
что можно придумать?
std::vector<Handler<RequestHandler>*> V{h1,h2};
не работает

Плюшка
10.11.2016
10:54:26
хотя
стоп

Dumitru
10.11.2016
10:54:39
не, тоже не работает)

Плюшка
10.11.2016
10:54:51
чот запутался

Kirill
10.11.2016
10:54:52
можно как указателей на родителей хранить, для этого наследование и есть

babysitter
10.11.2016
10:55:11

Kirill
10.11.2016
10:55:15
родитель же общий интерфейс, по которому будут его дергать

Dumitru
10.11.2016
10:55:42

Kirill
10.11.2016
10:55:56

babysitter
10.11.2016
10:56:03
нету общего родителя тут

Kirill
10.11.2016
10:56:10
у Html и Index общий родитель
что можно придумать?
это цитата

Плюшка
10.11.2016
10:56:52

babysitter
10.11.2016
10:56:52

Dumitru
10.11.2016
10:57:16
вооот, в этом и проблема)

Google

Admin
ERROR: S client not available

Dumitru
10.11.2016
10:57:22
как решить не знаю

babysitter
10.11.2016
10:58:11
искусственно унаследовать Handler от пустого класса можно попробовать

Kirill
10.11.2016
10:58:44
ааа, я думал у хендлеров общий родитель
ну какбе да, сделать им общий интерфейс и за него дергать

Плюшка
10.11.2016
10:59:07
эх, а в кристале есть сахар для юнионов

Dumitru
10.11.2016
10:59:26
я немного не догнал, как это сделать ?

Andrey
10.11.2016
11:00:37

Kirill
10.11.2016
11:00:38
template<Typename T>
class Handler: public iHandler

Dumitru
10.11.2016
11:00:58

Andrey
10.11.2016
11:01:05
?

Плюшка
10.11.2016
11:01:09
class IHandler{ /*объявление виртуальных методов*/ };
template<typename T> class Handler<T> : public IHandler{ /*реализация методов*/ };

Dumitru
10.11.2016
11:01:13

Плюшка
10.11.2016
11:01:30
не?

Kirill
10.11.2016
11:01:35
?
вы стебетесь а в freertos так параметры передают в поток))

Дед Пегас
10.11.2016
11:02:54

Kirill
10.11.2016
11:04:21

Real Human
10.11.2016
11:05:35
А зачем хранить их в одной векторе, если у них не было общего интерфейса?

Dumitru
10.11.2016
11:06:23
заработало!!
всем большое спасибо!

Google

Dumitru
10.11.2016
11:08:51
я пытался раньше сделать общий класс, но что-то с шаблонами напутал видимо

Real Human
10.11.2016
11:49:02
Есть тут еще кто-нибудь из Бишкека?

Erdni
10.11.2016
12:33:04
видимо, кроме вас двоих , нет

Kirill
10.11.2016
14:34:37
Может кто-нибудь объяснить, зачем нужен этот макрос, и почему без него не работает?
http://pastebin.com/McjM4C8f

Vladislav
10.11.2016
14:36:14

Denis
10.11.2016
14:37:40
Наверное вопрос был зачем форвард, или нет? )

Aidar
10.11.2016
14:37:42
Читай про std::forward и perfect forwarding

Kirill
10.11.2016
14:38:33
Что такое perfect forwarding я знаю. Тут вся суть в его сочетании с разворачиванием variadic templates.
Я не могу понять, нужен макрос или нет.