
Господин
24.10.2018
17:49:44
То есть, есть класс, в котором есть myType a,b; и для них нужно перегрузить все операторы арифм. операторы. чтоб не писать кучу перегрузок для +,- и т.д. (гарантируется что они будут расположены в одинаковых местах в выражениях).
как в шаблон поместить все арифм. операторы ?
Вообще, есть шаблон для символа а не типа?

Aidar
24.10.2018
17:50:38

Господин
24.10.2018
17:50:52
как?

Google

Aidar
24.10.2018
17:51:33
https://en.cppreference.com/w/cpp/utility/functional/plus
как?
template<typename Fn>
void foo(Fn& f) {
f(a, b);
}
foo(std::plus<>{});

Господин
24.10.2018
17:53:28
ну а где оператор указывать?

Aidar
24.10.2018
17:53:41
Функтор а не оператор

Господин
24.10.2018
17:54:20
если мне нужно a/b

Серж
24.10.2018
17:54:52

Aidar
24.10.2018
17:54:53
foo(std::divides<>{});

Alex
24.10.2018
17:59:15
Пользователи Conan, подскажите: добавил репозиторий bincrafters (conan remote add bincrafters https://api.bintray.com/conan/bincrafters/public-conan), а conan search как не находил либу, так и не находит. В репозитории bincrafters она есть, проверил. Что ещё надо вызвать?

Alexander
24.10.2018
18:05:27

Alex
24.10.2018
18:06:36
Спасибо. -r указывает репозиторий, в котором искать? А как поменять репозиторий по умолчанию?

Konstantin
24.10.2018
18:06:53
лучше conan search *libname* -r bincrafters

Alexander
24.10.2018
18:07:12
Если хочешь во всех remotes, то вместо public-conan пиши all

Google

Alexander
24.10.2018
18:07:55

Alex
24.10.2018
18:15:33
В локальном кэше самих библиотек, или рецептов?

Alexander
24.10.2018
18:18:53
https://docs.conan.io/en/latest/reference/commands/consumer/search.html

Alex
24.10.2018
18:22:06
Понятно, спасибо. Тогда должна быть команда для синхронизации с репозиторием? Не нахожу.

Alexander
24.10.2018
18:22:35
не понимаю, о какой синхронизации речь

Alex
24.10.2018
18:23:33
Судя по тексту: "Searches package recipes and binaries in the local cache or in a remote.", должен быть способ закэшировать локально список всех рецептов в репозитории?

Alexander
24.10.2018
18:24:03

Alex
24.10.2018
18:24:21
чтобы быстро среди них искать
чсх, через vcpkg уже полчаса назад за два клика установил нужную библиотеку, а в conan не смог разобраться без посторонней помощи. А теперь Питон показывает ошибку SSL, и так ничего и не работает.

Alexander
24.10.2018
18:25:14
я не уверен насчёт наличия явного такого механизма. мб он каждый раз ходит в интернеты (если мы говорим про репы на bintray) и смотрит там пакеты

Alex
24.10.2018
18:25:39
я честно попытался!
про поиск с -r не увидел, теперь питон глючит. На Линукс любая задача - приключение!

Alexander
24.10.2018
18:27:39
но наверное при поиске без -r параметра было бы неплохо добавить в output, что поиск был произведён в локальном кэше

Andrey
24.10.2018
18:35:13

Vyacheslav
24.10.2018
18:36:06

Vladislav
24.10.2018
18:38:22

Серж
24.10.2018
18:43:22
https://ideone.com/hsP2gD
Почему работает оба варианта вызова bar? Точнее почему работает второй? стрелка то одна он мне вернул Proxy, а метод bar типа Baz успешно вызывается. Откуда взялся неявный вызов -> у Proxy?

Google

Alexen
24.10.2018
18:45:05
почему это неявный?
@Mosolov https://godbolt.org/z/2X2ap0

Серж
24.10.2018
18:48:36
у Foo оператор -> перегружен и возвращает Proxy, у Proxy метода bar(), но так же перегружена стрелка, которая возвращает Baz у которого есть bar()
для меня:
foo.operator->().operator->()->bar(); - явный вызов стрелки у прокси (во второй раз)
foo->bar(); - неявный

Alexen
24.10.2018
18:49:11
а вы в курсе что делаете когда у ссылочного типа делаете вызов ->?

Серж
24.10.2018
18:49:58
разадресацию)))

Alexen
24.10.2018
18:51:09
и как она должна происхоить по вашему?

Серж
24.10.2018
18:51:55
компилятор вставялет вычисление адреса и разадресует
а может сразу разадресует

Alexen
24.10.2018
18:53:18
компилятор проделал ровно то что вы сделали прямым вызовом операторов

Серж
24.10.2018
18:57:08
а есть какая-то объективная причина почему компилятор может так делать?

Alexen
24.10.2018
18:57:46
оператор это то как вы видите некоторую последовательность действий
они также могут друг в друга вкладываться

Max
24.10.2018
19:04:40
https://en.cppreference.com/w/cpp/language/operator_member_access
If a user-defined operator-> is provided, the operator-> is called again on the value that it returns, recursively, until an operator-> is reached that returns a plain pointer. After that, built-in semantics are applied to that pointer.

Серж
24.10.2018
19:05:30
спасибо, я уже нашел

Alexen
24.10.2018
19:05:35
Рекурсия everythere
@DemyanovMaxim емнип также рекурсия будет для операторов преобразования и ещё парочки

Max
24.10.2018
19:09:32

Alexen
24.10.2018
19:10:16
ну да, для того и планировалось это

Google

Vyacheslav
24.10.2018
19:24:34
Кто-нибудь пользовался? https://github.com/hanickadot/compile-time-regular-expressions

Alexander
24.10.2018
19:25:14
и почему-то это самый популярная тема на этом CppCon была
только я никак не могу понять, почему

Alexen
24.10.2018
19:25:54
потому что ты не очень любишь мпл
потому и понять не можешь

Alexander
24.10.2018
19:27:17
я просто считаю, что нет никакого rocket science в регулярках в компайлтайм

Alexen
24.10.2018
19:27:47
нет вообще никакого rocket science вообще во всём этом, просто это очень удобно

Alexander
24.10.2018
19:27:57
помечаем весь std::regex constexpr(он же не аллоцирует динамически память?), constexpr string подвезут чуть позже. вуаля - заработало

Alexen
24.10.2018
19:28:21
но что-то constexrp не завезут никак

Vyacheslav
24.10.2018
19:28:31

Alexen
24.10.2018
19:28:43
ни для стрингов ни для контейнеров

Alexander
24.10.2018
19:28:58

Vyacheslav
24.10.2018
19:29:38
Вообще я хотел бы сказать, что работа со строками во время compile time — это боль. Может есть удобные либы, о которых я не знаю?

Alexander
24.10.2018
19:30:32

Vyacheslav
24.10.2018
19:31:33
Мне нужно складывать строки, искать в строках подстроки, обрезать строки, преобразовывать int в строковое представление в 10 и 16 системе счисления.

Alexen
24.10.2018
19:32:10
Я бы от compile time hash не отказался
И прочих радостей жизни

Ruslan
24.10.2018
20:05:59
constexpr new

Побитый
24.10.2018
20:32:48
Чтоб выполнить rvo\nrvo компилятору нужно видеть определение функции?

Google

Vyacheslav
24.10.2018
21:07:51
Господа. Небольшой вопрос не совсем по плюсам, но уверен, что шарящие программисты знают. Почему в программировании vector так называется? Какова история этого?

Matthew
24.10.2018
21:08:34
Из математики позаимствовано...?

Vyacheslav
24.10.2018
21:09:15

Egor
24.10.2018
21:10:49
а что лучше подходит?

Alexander
24.10.2018
21:11:56
а вместо std::array -> std::stack_array

Vyacheslav
24.10.2018
21:14:03
array :)
Вот я о том же. Полностью поддерживаю. Ведь должно быть какое-то обоснование, почему именно вектор придумали.

Alexander
24.10.2018
21:15:03

Vyacheslav
24.10.2018
21:15:17
спасибо

Egor
24.10.2018
21:15:29
да вон некоторые версии на so
https://stackoverflow.com/questions/581426/why-is-a-c-vector-called-a-vector

Alexander
24.10.2018
21:15:51

Constantine
24.10.2018
21:23:13
теперь осталось узнать ответы на вопрос, почему inline не связан с inlining, std::move ничего не перемещает и std::forward ничего не форвардит!

Alexander
24.10.2018
21:24:10
ой ну снова ты начинаешь ?

Constantine
24.10.2018
21:24:41
просто обсуждать терминологию С++ это...
там уже приняли какего_ptr который является аналогом reference_wrapper только называется kakto_ptr?

Sergey
24.10.2018
21:25:44
Вечер добрый) Такой вопрос, есть программа (с реализацией функции ресайз) нужно проверить с помощью другой программы проверить, что функция ресайз написанна верно и утечек памяти нет.

Alexander
24.10.2018
21:26:16

Sergey
24.10.2018
21:27:10
Не совсем
Имеется ввиду не готовая программа
С ваилгрилом знаком

Constantine
24.10.2018
21:28:07
Вы же не про системы автоматических проверок доказательств ;)