
Ilia
24.10.2018
16:08:51

Yarique
24.10.2018
16:09:00

Ilia
24.10.2018
16:09:43

Google

Ilia
24.10.2018
16:10:26

Group Butler [beta]
24.10.2018
16:10:26
Yarique has been warned (1/3)

Yarique
24.10.2018
16:13:11

Vyacheslav
24.10.2018
16:19:24

Yarique
24.10.2018
16:20:34
Размер int не стандартизирован
Часто очень sizeof(int) == sizeof(nullptr)

A.D.
24.10.2018
16:22:22

Vyacheslav
24.10.2018
16:23:07
Я не говорил, что он обязательно не равен.

Yarique
24.10.2018
16:24:55
Wut?
Блин, тут я явно не прав

Vyacheslav
24.10.2018
16:32:10

Anton
24.10.2018
16:33:35

Google

Vyacheslav
24.10.2018
16:33:49
Хорошо, что double к void* не приводится :)
В чём интрига? там видимо с -Werror собирается
В принципе, это UB (создание строки таким образом). Поэтому ничего необычного.
If s is a null pointer, if n == npos, or if the range specified by [first,last) is not valid, it causes undefined behavior.
Отсюда: http://www.cplusplus.com/reference/string/string/string/
(Ссылка радует :) )
Предупреждения компилятора посмотреть с телефона неудобно.

Alexander
24.10.2018
16:39:49

Vyacheslav
24.10.2018
16:40:13

Alexander
24.10.2018
16:40:37

Vyacheslav
24.10.2018
16:41:04

Alexander
24.10.2018
16:43:04
Пруфы есть или это личное мнение?
1) Нет HTTPS в отличие от cppreference
2) ну просто посмотрите по списку фичей, на сайтах. Как пример - найдите описание std::variant на cplusplus.com И таких фичей очень много
3) cppreference обновляется со скоростью "сегодня приняли пропозал, завтра обновили cppreference"

Alexen
24.10.2018
16:44:03
cplusplus.com вообще не ментейнится

Vyacheslav
24.10.2018
16:44:19

Alexander
24.10.2018
16:44:21
4) Если чего-то не так на cppreference, то в слаке пишите в #cppreference

Vitaly
24.10.2018
16:44:53

Marsel
24.10.2018
16:50:17

Vladislav
24.10.2018
16:54:06
Господа, покритикуйте идею, пожалуйста.
Задача:
Есть функция Ctx getContext();
Нужно обернуть в существующем коде все выражения вида foo(..., getContext()); обернуть вызовами enter(ctx); / exit(ctx);, минимально меняя код (и желательно с гарантией что в новых подобных выражениях было невозможно забыть обертку.
Преполагаемое решение:
Пусть getContext() возвращает временную не копируемую структуру WrappedCtx, конструктор/деструктор которой вызывает enter/exit и которая конвертится в Ctx.
Какие у такого подхода могут быть подводные камни?

Constantine
24.10.2018
17:00:55

Vladislav
24.10.2018
17:01:26

Constantine
24.10.2018
17:01:44

Vladislav
24.10.2018
17:01:56

Google

Constantine
24.10.2018
17:04:34

Vladislav
24.10.2018
17:04:52

Constantine
24.10.2018
17:05:07
ужос

Vladislav
24.10.2018
17:05:23
(да, это все нужно для корректной работы с нехорошим сишным API)

Господин
24.10.2018
17:05:31
А есть способ реализовать такой вызов функции?
sum(a)(b)(c)..., которая вернет сумму ?

Vladislav
24.10.2018
17:05:46

Andrew
24.10.2018
17:06:23
return [a](int b) { return a + b; }?

Господин
24.10.2018
17:07:10
кол-во входных данных произвольно

Andrew
24.10.2018
17:07:13
И для произвольного количества чисел тоже можно несложно.
Сделай функтор, который еще умеет конвертиться в int.

Constantine
24.10.2018
17:07:52
У меня там кажись было sum(a)(b)(c)()

Ignat
24.10.2018
17:08:23
но чому бы не неявное преобразование к инту

Constantine
24.10.2018
17:08:27

Vladislav
24.10.2018
17:08:40

Господин
24.10.2018
17:08:44
ну то есть я могу написать int abc = sum(a)(b)(c)

Andrew
24.10.2018
17:08:46
лучше явное
да

Vladislav
24.10.2018
17:09:10

Constantine
24.10.2018
17:09:34

Google

Andrew
24.10.2018
17:11:27

Constantine
24.10.2018
17:11:30

Alexander
24.10.2018
17:11:52

Grigor
24.10.2018
17:11:57

Constantine
24.10.2018
17:12:25

Vladislav
24.10.2018
17:12:34

Andrew
24.10.2018
17:12:37

Constantine
24.10.2018
17:13:51

Господин
24.10.2018
17:14:08

Andrew
24.10.2018
17:14:38
что именно непонятно?

Constantine
24.10.2018
17:14:45

Vladislav
24.10.2018
17:16:19

Constantine
24.10.2018
17:16:44
и Ctx это SomeType*
запрети инклудить определение SomeType в нормальном коде

Господин
24.10.2018
17:18:37
перегружать скобки вообще легально?

Vladislav
24.10.2018
17:19:04

Ignat
24.10.2018
17:19:42
некоторые вон запятую перегружают

Claudio
24.10.2018
17:20:06
что из вас в слеке
;лещ

Google

Claudio
24.10.2018
17:20:19
*кто

Alexen
24.10.2018
17:20:34
перегружающий унарный & - должен в наказание поддежривать библиотеку которая использует его класс

Constantine
24.10.2018
17:24:08

Alexander
24.10.2018
17:24:29

Vladislav
24.10.2018
17:25:20

Constantine
24.10.2018
17:26:10

Vladislav
24.10.2018
17:28:15

Constantine
24.10.2018
17:33:20
вообще у нас по такому принципу пишется <node></node> и никто за N лет не попытался сохранить промежуточное значение где не надо

Aidar
24.10.2018
17:34:40
лучше Wrapped принимать из функций
а еще лучше эти функции сунуть в методы Wrapped если можно

Constantine
24.10.2018
17:35:45
а еще WrappedCtx перемещаемый, но это не суть

Aidar
24.10.2018
17:36:04
1) foo(x)
2) bar(x)
преобразовывать в
auto y = x.foo()
y.bar()
это классека

Vladislav
24.10.2018
17:36:34

Constantine
24.10.2018
17:36:38

Aidar
24.10.2018
17:36:51
там указатели крч которые типа .get()
зато явно