
Pavel
20.07.2018
16:05:43
А, точно. Не привык к такому коду

Mikhail Voronov
20.07.2018
16:06:00
по идее, дефолтный конструктор Bar должен быть удалён, т.к. у Foo его нет

Stanislav
20.07.2018
16:06:07
да дописать using Foo::Foo; и все

Alexey
20.07.2018
16:06:16

Google

Alexey
20.07.2018
16:06:53

Stanislav
20.07.2018
16:07:16
struct Bar : Foo {
using Foo::Foo;
};

Mikhail Voronov
20.07.2018
16:08:09
а что это даст?

Stanislav
20.07.2018
16:08:41
https://wandbox.org/permlink/SCCPy48LglvcMNcl

Igor
20.07.2018
16:08:57
это автоматически позволит конструировать Bar с помощью тех же параметров что и Foo

Alexey
20.07.2018
16:09:48
А! Во, спасибо.
Это же в с++11 появилось?

Mikhail Voronov
20.07.2018
16:10:06

Stanislav
20.07.2018
16:10:44
https://en.cppreference.com/w/cpp/language/using_declaration#Inheriting_constructors

Ilia
20.07.2018
16:12:09
Парни, не знаете, не появилось ли хорошей универсальной функии возведения в квадрат ? Не любую степень, а именно квадрат?

Igor
20.07.2018
16:15:05
Теперь когда ты об этом спросил, мне тоже стало интеречно, бывает ли что-то лучшее чем a*a ?

Mikhail Voronov
20.07.2018
16:15:29
ну всякие быстрые умножения за nlogn разве что

Google

Ilia
20.07.2018
16:21:33
Неудобно читать. Вообще не соображаешь что это.

Dmitry
20.07.2018
16:24:55
Заведи локальную переменную с квадратом, делов-то

Pavel
20.07.2018
16:25:41
Ну так как ты описал точно не вариант, так как возводимое в квадрат еще и считаться будет дважды.
Вот да, Dmitry S опередил.

Ilia
20.07.2018
16:26:37

Pavel
20.07.2018
16:27:03
Зачем выкидывал?

Ilia
20.07.2018
16:27:25
Каждая промежуточная переменная ухудшает читаемость кода
Теперь можно.
Когда простыня на три экрана сворачивается в 20 строк, оно как-то лучше сразу
Ладно я понял, функции нет, надо написать

Pavel
20.07.2018
16:30:09

Temur
20.07.2018
16:30:23

Pavel
20.07.2018
16:31:27

Matwey
20.07.2018
16:31:53
А в бустах нигде не завалялся какой-нибудь pow<2?x) ?
Что-то такое должно быть

Aidar
20.07.2018
16:32:29

Vladislav
20.07.2018
16:34:02

Aidar
20.07.2018
16:34:24

Vladislav
20.07.2018
16:34:51

Google

Ilia
20.07.2018
16:36:01

Matwey
20.07.2018
16:37:01
Вообще мысль инетерсная
Срочно нужно в стандарт
operator**
как в питоне
Что за дела?
Только так просто не внесешь такой оператор

Aidar
20.07.2018
16:38:23

Matwey
20.07.2018
16:38:37
Потому-что возведение в известную степень и в неизвестную нужно разному очевидно делать

Aidar
20.07.2018
16:38:45
хотябы pow для целых
но там был подвох какойто
какой уже не помню

Matwey
20.07.2018
16:39:02
Если степень константа времени компиляции, то функция должна быть заоптимизирована на этапе компиляции
А иначе не нужна такая функция, придется писать все-равно x*x*x

Ilia
20.07.2018
16:49:46

Matwey
20.07.2018
16:52:03

Ilia
20.07.2018
16:53:07
Да вот ....
Раньше ленивый был, его уволили, этот агрессивный...
Форвардить нельзя, сразу банить будет

Google

Matwey
20.07.2018
16:56:22
Бота форвардить?
Или в чат форвардить?

Ilia
20.07.2018
16:57:42
В чат нельзя форвардить сообщения.

Matwey
20.07.2018
16:58:00
Совсем не очевидно, хорошо хоть предупредили

Evgeniy
20.07.2018
17:10:47
однострочники топ читаемость

Alexey
20.07.2018
17:11:56

Александр
20.07.2018
18:32:16
...Продолжаю развивать свою либу для Software Transactional Memory. Пример с обедающими философами мало убедителен, поэтому я решил проапдейтить свой давний проект Amber. Это игра, в которой человек может ходить по отражениям, меняя параметры вселенных. Отлично подходит для демонстрации concurrency. Вот какая модель у меня получилась на данный момент:
https://github.com/graninas/Amber/blob/3f8dc7d471c0bbf827da223ebceb2cc4e77e0856/src/amberTest/tst_ambertest.cpp#L208
Сейчас можно задавать сложно устроенные параметры миров и есть несколько тестовых транзакций над моделью.
2 августа мы проводим митап по ФП, буду там рассказывать об STM. Своего рода продолжение доклада с C++ Russia 2018.

Aidar
20.07.2018
18:42:21
почему не операторы перегруженные?

Александр
20.07.2018
18:43:09
Ммм?
Там очень, _очень_ много неэффективностей, которые я собираюсь устранять за этот подход. Как раз эти транзакции подходят хорошо, чтобы бенчмарки гонять.
Но, конечно, качество уровня библиотек из boost мне не достичь, по нескольким причинам: мало времени; маловато знаний

Aidar
20.07.2018
18:52:34
а зачем айдишники?

Александр
20.07.2018
18:53:52
а зачем айдишники?
TVar чтобы можно было отличать один от другого. В планах - заменить на целочисленные, будет гораздо лучше.

Aidar
20.07.2018
18:54:43

Александр
20.07.2018
18:56:29
зачем? параллелить в одном контексте?
В рантайме я храню значения, связанные с TVar, во внутренних структурах. Нужно уметь доставать эти данные. TVar являются "представителями", но сами данных не несут. Их можно копировать, это дешево. А TVarId как раз указывает на то, где брать данные.
Вопрос про "параллелить" не очень понял.

Kirill
20.07.2018
19:43:43
Ребят, если есть желание покопаться в ppc64 и покодить на плюсах, в каких опенсурс проектах можно покопаться?

Matwey
20.07.2018
19:45:19

Kirill
20.07.2018
19:45:43
Просто хочется поразбираться и покопаться в этом деле. Даже машинку на POWER 8 раздобыл для этих целей)

Matwey
20.07.2018
19:46:09
https://www.bountysource.com/?search=Power8

Google

Kirill
20.07.2018
19:47:23

Matwey
20.07.2018
19:48:00
Второй вариант такой. Открой матрицу сборки любого дистрибутива, и посмотри сборка чего сломана под ppc64
И выбери там себе по душе
https://build.opensuse.org/project/monitor/openSUSE:Factory:PowerPC?arch_ppc64=1&defaults=0&failed=1&repo_standard=1

Kirill
20.07.2018
19:50:45
Спасибо)

Ilia
20.07.2018
21:05:13

Stanislav
20.07.2018
21:18:10
парни, а есть какая нибудь адекватная реализация array_view/span для С++14/17 без бустов и gsl

Алексей
20.07.2018
21:44:59
Доброй ночи! Есть функция, где в деструкторе выбрасывается std::exception, которое дважды обложено try {} catch и приложение падает от того, что не поймало std::exception. Что я не так делаю?

Stanislav
20.07.2018
21:45:48

Mikhail Voronov
20.07.2018
21:46:00
А код есть возможность куда-нибудь залить?

Алексей
20.07.2018
21:47:13

Stanislav
20.07.2018
21:48:17

Алексей
20.07.2018
21:49:32