
Sergey
12.02.2017
23:50:23
или мне на каждый такой чих отдельную функцию писать, причем она будет "типа с переменным числом аргументов", хотя на самом деле - со всполне определенным

Alex Фэils?︙
12.02.2017
23:50:41
Шаблон можно написать

Viktor
12.02.2017
23:51:02
зы int f(std::initialize_list l){ int sum_len = 0; for(auto arg: l) { sum += arg.len(); } }

Andre
12.02.2017
23:51:09
Reindex.. please wait

Google

Alex Фэils?︙
12.02.2017
23:51:31
template <typename Functor<Args...>, Args...>

Sergey
12.02.2017
23:51:37
а если там не "все просуммировать", а нормальное выражение
(a.length + b.length*max(c.length,0.f))

Alex Фэils?︙
12.02.2017
23:53:46
А ты уверен, что тут ленгтх можно вынести?

Andre
12.02.2017
23:53:59
Reindex.. please wait

Sergey
12.02.2017
23:54:26

Alex Фэils?︙
12.02.2017
23:54:59
это норма
Паттерн "Интерпретатор" отдалкнно напоминает

Andre
12.02.2017
23:55:38
Reindex.. please wait

Sergey
12.02.2017
23:56:09
да, но применять-то это хочется для "настоящих" выражений. там такая запись только все запутает вкрай
уж проще тогда аккуратным элайнментом показать однородности в выражении

Google

Alex Фэils?︙
12.02.2017
23:57:58
Дык можно ж сделать стековуюцепочку для операторов

Sergey
12.02.2017
23:58:18
ну вы издеваетесь

Alex Фэils?︙
12.02.2017
23:59:41
утречком мб @ AndreiKr что подскажет. Иль Влад @ isenbaev

Stanislav
13.02.2017
00:03:52

Sergey
13.02.2017
00:04:19
еще раз
есть некие "однородные" вычисления. в ходе них, от каждого участвующего в вычислениях объекта, зовется один и тот же метод
допустим даже, что объекты все одого типа
как-то можно упростить запись такого выражения? записать этот метод 1 раз, указав (как-то), что он применяется ко всем участвующим объектам

Vladislav
13.02.2017
00:12:23

Челодой
13.02.2017
04:36:12
Reindex.. please wait

Alex Фэils?︙
13.02.2017
05:17:26

Andrey
13.02.2017
06:27:54

Челодой
13.02.2017
06:33:56
Reindex.. please wait

Andrey
13.02.2017
06:35:04

Челодой
13.02.2017
06:41:52

Andrey
13.02.2017
06:42:10

Google

Andrey
13.02.2017
06:42:19
Reindex.. please wait

Челодой
13.02.2017
06:43:25
Reindex.. please wait

Andrei
13.02.2017
08:05:21
Но в плюсах для этого синтаксис плоховат.
Для штуки из 3-4 частей я бы не стал. Если же что-то повсеместсно используемое написал бы

Berkus
13.02.2017
08:10:11

Andrei
13.02.2017
08:14:09
Не совсем понятно, как + поднять в монадические вычисления в плюсах.
liftM2 будет выглядеть жутковато
на шаблонах

Stanislav
13.02.2017
08:48:52
template< class Predicate > std::unary_negate<Predicate> not1(const Predicate& pred); (until C++14)
template< class Predicate > constexpr std::unary_negate<Predicate> not1(const Predicate& pred); (since C++14) (deprecated in C++17)
господа, а чем заменили или самому это теперь писать?

Alex Фэils?︙
13.02.2017
08:49:14
Просто not

Stanislav
13.02.2017
08:57:33

Stanislav
13.02.2017
08:57:45
или ты про кейворд? )

Alex Фэils?︙
13.02.2017
08:57:59
Ща еще гляну, на всяк случай

Stanislav
13.02.2017
08:58:44
not_fn
нашел
not_fn is intended to replace the C++03-era negators std::not1 and std::not2.

Steven
13.02.2017
09:24:09
Ребятки, а как вы к наследованию относитесь?

Berkus
13.02.2017
09:26:01
плохо

Google

Steven
13.02.2017
09:26:25
Композиция?

Berkus
13.02.2017
09:26:45
ага
нормальный для плюсов способ это композиция, а наследование обычно в широких плоских иерархиях работает - визиторы там, и все такое

Admin
ERROR: S client not available

Andre
13.02.2017
09:27:31
Reindex.. please wait

Berkus
13.02.2017
09:27:48
ну или там no sex, no future

Steven
13.02.2017
09:28:05
Спасибо)

Friedrich
13.02.2017
09:35:08
Только множественное наследование спасёт отца русской демократии, только хардкор.

Andre
13.02.2017
09:35:59

Friedrich
13.02.2017
09:36:13
А такое вообще бывает?

Andre
13.02.2017
09:36:26
Reindex.. please wait

Friedrich
13.02.2017
09:36:52
К нам в морг пока таких патологий не завозили, надо будет покопаться.

Vitaliy
13.02.2017
09:38:05
Я-то думал, ничего хуже упоротого синтаксиса указателей быть не может

Stanislav
13.02.2017
09:42:32
мне кажется ты каналом ошибся

Vitaliy
13.02.2017
09:44:10
Отчасти правда, я пишу на других ЯП. Но на плюсах тоже, в том числе с шаблонами.
Просто это всё навевает какой-то благовейный трепет

Aidar
13.02.2017
09:44:55
А бывают без шаблонов?
Кстати насколько валидно юзать ensble_if вместо ассерта для ограничения параметров класса

Google

Vitaliy
13.02.2017
09:48:50
А бывают без шаблонов?
В NDK очень часто. И чаще всего без исключений, потому что это добавляет существенно к размеру либы

Aidar
13.02.2017
09:49:25
По-моему джава сама добавляет нехило

Stanislav
13.02.2017
09:50:22
?

Andre
13.02.2017
09:50:33
Reindex.. please wait

Aidar
13.02.2017
09:50:54
Лямбды? Не не слышал
static void ltrim(std::string &s) {
s.erase(s.begin(),
std::find_if(s.begin(), s.end(),
std::not1(
std::function<int(int)>((int(*)(int))std::isspace)
)
)
);
}
?

Vitaliy
13.02.2017
09:51:26
JVM код это набор шестнадцатеричных опткодов JVM. Мне кажется, вряд ли тут размер больше, чем у экзешника, даже меньше, скорее всего — комманд в опткодах меньше, чем в ассемблерах, заголовков и прочего нет, шаблоны компилируются в касты, а не в новые классы.

Berkus
13.02.2017
09:51:27

Stanislav
13.02.2017
09:51:34

Vitaliy
13.02.2017
09:51:39
С другой стороны, неиспользуемый код по умолчанию не вырезается